我是转换图像类型的新手。我想确定屏幕上每个像素的颜色。我可以从帧缓冲区中读取颜色,但它们都是 RGB565。为了跟踪某种颜色,我想将 RGB565 转换为 HSV,以便检查色调。
我已经尝试通过在线转换器将其从 RGB565 转换为 RGB888。例如 RGB565 '08F5' 到 RGB888 '081BAA'。然后从 RGB888 到 HSL '233 91% 35%'。但是,我无法使用 c 代码进行此操作。颜色采用 HEX 格式,每 2 存储在一个寄存器中。我为每种颜色制作了四个字符数组。
int colorcodes = IORD_ALTERA_AVALON_PIO_DATA(0x08000000 + 123204);
char colorcodesInHex[9];
snprintf(colorcodesInHex, 9, "%08x\n", colorcodes);
char firstColor[4];
char secondColor[4];
for(int i = 0; i <= 7; i++)
{
if(i <= 3)
{
firstColor[i] = colorcodesInHex[i];
}
else if (i >= 4 && i <= 7)
{
secondColor[i - 4] = colorcodesInHex[i];
}
}
有人知道如何将 RGB565 转换为 RGB888,然后在 C 中转换为 HSL?