gpt4 book ai didi

rgb - 如何将 ARGB 唯一地打包为一个整数?

转载 作者:行者123 更新时间:2023-12-04 01:19:31 25 4
gpt4 key购买 nike

对于 ARGB 颜色图,我有四个整数值 (0 - 255)。

现在我想制作这四个整数的唯一浮点数或整数。是否可以像下面那样做?

sum  = 4 * 255 + A;
sum += 3 * 255 + R;
sum += 2 * 255 + G;
sum += 1 * 255 + B;

值(value)真的是独一无二的吗?

最佳答案

您正在尝试进行基本转换或类似的操作。无论如何,逻辑就像在基本转换中一样。
4 字节 = 32 位。所以 32 位无符号整数会做得很好。

在这种情况下,您有:

ARGB = A<<24 + R<<16 + G<<8 + B

就像这样:
你有 4 个字节的数据,意思是
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx

其中 X 是 1 或 0 值位。你可以这样映射它们:
AAAAAAAA RRRRRRRR GGGGGGGG BBBBBBBB

然后你所要做的就是添加它们,但在此之前你需要移动位。你转移了 A位向左移动 8*3(超出 RGB 位的限制),然后将 R 移位位乘以 8*2,依此类推。

您最终添加了这些 32 位整数:
AAAAAAAA 00000000 00000000 00000000
00000000 RRRRRRRR 00000000 00000000
00000000 00000000 GGGGGGGG 00000000
00000000 00000000 00000000 BBBBBBBB

哪里 A , R , G , B可以是 01 ,并作为一个整体表示 channel 的 8 位值。然后您只需将它们相加,即可获得结果。或作为 DarkDust写道,不要使用 +运算符,而是 | (按位或)运算符,因为在这种特殊情况下它应该更快。

关于rgb - 如何将 ARGB 唯一地打包为一个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7358533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com