仅使用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;
}

09-06 23:09