Пример #1
0
BOOL MyColorSpace::XyztoRgb(FLOAT* xyzDatas, int width, int height, BYTE* rgbDatas)
{
	if (NULL == rgbDatas)
	{
		CString tempstr;
		tempstr.Format("传入内存未分配,在MyColorSpace::RGBtoHSV");
		AfxMessageBox(tempstr,NULL,MB_OK);
		return FALSE;		
	}

	int i,j;
	FLOAT r,g,b;
	FLOAT x, y, z;
	unsigned long pos;

	for(i=0;i<height;i++)
	{
		for (j=0;j<width;j++)
		{
			pos = (i*width+j) * 3;
			x = xyzDatas[pos];
			y = xyzDatas[pos+1];
			z = xyzDatas[pos+2];
			
			Xyz2Rgb(x, y, z, r, g, b);
			rgbDatas[pos] = (BYTE) ( b*255 );
			rgbDatas[pos+1] = (BYTE) ( g*255 );
			rgbDatas[pos+2] = (BYTE) ( r*255 );			
		}
	}
	return TRUE;
}
Пример #2
0
void Cat02lms2Rgb(num *R, num *G, num *B, num L, num M, num S)
{
	num X, Y, Z;
	Cat02lms2Xyz(&X, &Y, &Z, L, M, S);
	Xyz2Rgb(R, G, B, X, Y, Z);
}
Пример #3
0
void Luv2Rgb(num *R, num *G, num *B, num L, num u, num v)
{
	num X, Y, Z;
	Luv2Xyz(&X, &Y, &Z, L, u, v);
	Xyz2Rgb(R, G, B, X, Y, Z);
}
Пример #4
0
void Lch2Rgb(num *R, num *G, num *B, num L, num C, num H)
{
	num X, Y, Z;
	Lch2Xyz(&X, &Y, &Z, L, C, H);
	Xyz2Rgb(R, G, B, X, Y, Z);
}
Пример #5
0
void Lab2Rgb(num *R, num *G, num *B, num L, num a, num b)
{
	num X, Y, Z;
	Lab2Xyz(&X, &Y, &Z, L, a, b);
	Xyz2Rgb(R, G, B, X, Y, Z);
}