【发布时间】:2017-02-11 03:56:53
【问题描述】:
好的,我有一个方法很难返回所需的结果。所以我做了一个测试结果,它返回了一个我没想到的结果。
这是一个例子 -->
int color = 0x00FFFF00;
return 0xFF & (color >> 24) | 0xFF & (color >> 16) | 0xFF & (color >> 8);
据我所知,这应该返回:
0x00FFFF
然而,它实际上返回:
0x0000FF
有人可以解释发生了什么吗?我也想知道如何正确地将 32 位 RGBA 整数转换为 24 位 RGB 整数,谢谢。
【问题讨论】:
-
在您应用的每个班次 & 0xFF 因此只有一个有价值的字节,其他都是零。
-
我知道。我试图在 RGBA 整数中获取特定的颜色值并将它们转换为 RGB 整数,但是,clearlight 已经帮助我完成了这个。无论如何,我也看到我在这里做错了什么。我应该移动红色和绿色元素的结果以匹配 RGB 整数。
标签: c gcc rgb data-conversion rgba