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

标签 c colors hex rgb

如何仅使用 C 库(不使用 C++ 或模板)在纯 C 中将颜色 HEX 代码转换为 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; 
}

关于在 C 中从 HEX 颜色转换为 RGB 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3723846/

相关文章:

c - 创建 if else 程序来计算不同车辆的不同 parking 费用时遇到麻烦

android - 每个特定字符的不同颜色

java - Java 中的半透明颜色通过属性文件

c# - 在 C# 中搜索字符串中的部分子字符串

将十六进制转换为单精度 IEEE-754 浮点的 Python 程序

c - 在 TCP 上手动选择一个接口(interface)来发送数据

programming-languages - 在 "Scanf"中观察到一个新事物

c - 来自 Mesa 的 gluPickMatrix 代码

android - 是否可以直接在string.xml中设置字符串的颜色?

node.js - 如何将字符串转换为十六进制nodejs