Tag: 颜色

C中快速,优化和准确的RGB HSB转换代码

我正在寻找在纯C中快速,准确地实现RGB到HSB和HSB到RGB。请注意,我特别寻找色调,饱和度,亮度而不是 HSL(亮度)。 当然,我已经广泛搜索了这一点,但速度在这里至关重要,我正在寻找有关可靠,快速,可靠代码的任何具体建议。

这种RGB到XYZ色彩空间转换算法有什么问题?

我的目标是将RGB像素转换为CIELab色彩空间,以便在CIELab中进行一些特殊的计算。 为此,我必须首先将RGB转换为XYZ,这是非常困难的部分。 我试图在Objective-C中实现这个算法(虽然大多使用普通的C),但结果是错误的。 我的代码基于easyrgb.com提供的伪实现。 他们有一个在线颜色转换器,工作得很好。 他们说他们的伪代码与他们的转换器中使用的伪代码相同。 这是他们的伪代码: var_R = ( R / 255 ) //R from 0 to 255 var_G = ( G / 255 ) //G from 0 to 255 var_B = ( B / 255 ) //B from 0 to 255 if ( var_R > 0.04045 ) var_R = ( ( var_R + […]

在C中从HEX颜色转换为RGB结构

仅使用C库将颜色HEX代码转换为纯c中的RGB(不含C ++,模板等)RGB结构可能是这样的 – > typedef struct RGB {double r; 双g; 双b; } RGB1; 函数应该返回RGB1

如何在C / C ++中将12位图像转换为8位?

好吧,所以我一直非常沮丧地尝试将12位缓冲区转换为8位缓冲区。 图像源是12位GrayScale(从JPEG2000解压缩),其颜色范围为0-4095。 现在我必须将其减少到0-255。 常识告诉我,我应该像这样简单地划分每个像素值。 但是当我尝试这个时,图像太亮了。 void TwelveToEightBit( unsigned char * charArray, unsigned char * shortArray, const int num ) { short shortValue = 0; //Will contain the two bytes in the shortArray. double doubleValue = 0; //Will contain intermediary calculations. for( int i = 0, j =0; i < num; i++, j +=2 ) { […]

ANSI C中的颜色控制台?

是否可以在简单的ANSI C中为控制台输出着色? 没有外部库? 这可以在Windows,Linux或Mac OS X中完成吗?

将颜色值从float 0..1转换为byte 0..255

将颜色值从float转换为byte的正确方法是什么? 起初我以为b=f*255.0应该这样做,但现在我想,在这种情况下,只有精确的1.0将被转换为255 ,但0.9999已经是254 ,这可能不是我想要的…… 似乎b=f*256.0会更好,除非它会在精确1.0的情况下产生256的不需要的情况。 最后我用这个: #define F2B(f) ((f) >= 1.0 ? 255 : (int)((f)*256.0))

如何在code :: blocks中更改文本颜色和控制台颜色?

我正在用C编写程序。我想在控制台中更改文本颜色和背景颜色。 我的示例程序是 – #include #include #include #include #include int main(int argc,char *argv[]) { textcolor(25); printf(“\n \n \t This is dummy program for text color “); getch(); return 0; } 当我编译这个程序代码:: blocks给我一个错误 – textcolor未定义。 为什么会这样? 我在GNU GCC编译器和Windows Vista中工作。 如果它不起作用什么是textcolor的副本。 就像我想要改变控制台的背景颜色。 编译器给出了同样的错误,只是函数的名称不同。 如何更改控制台和文本的颜色。 请帮忙。 即使答案是在C ++中,我也没关系。