仅使用C库(不使用C++或模板)如何在纯C中将彩色十六进制代码从RGB转换为RGB? RGB结构可能是这样的:
typedef struct RGB {
double r;
double g;
double b;
} RGB1;
我正在寻找的功能应返回RGB1。
最佳答案
假设您的十六进制值为32位'int'类型,并且我们使用上述RGB结构,则可以执行以下操作:
struct RGB colorConverter(int hexValue)
{
struct RGB rgbColor;
rgbColor.r = ((hexValue >> 16) & 0xFF) / 255.0; // Extract the RR byte
rgbColor.g = ((hexValue >> 8) & 0xFF) / 255.0; // Extract the GG byte
rgbColor.b = ((hexValue) & 0xFF) / 255.0; // Extract the BB byte
return rgbColor;
}