【发布时间】:2014-05-07 18:30:55
【问题描述】:
我正在尝试读取以下列方式存储颜色的图像文件:
Hex RGB
00 00 -> 0/0/0
01 00 -> 0/0/8
02 00 -> 0/0/16
...
20 00 -> 0/8/0
21 00 -> 0/8/8
22 00 -> 0/8/16
如您所见,如果当前通道的值为 256 或更大,它将增加前一个通道。
我似乎无法想出一个简单的算法来计算合适的颜色。如果有人能为我鞭打,我将非常感激!
更新:
0x00 -> 0x1F == 0x20 -> 0x3F == 0/0/0 -> 0/0/248
0x40 -> 0x5F == 0x60 -> 0x7F == 0/8/0 -> 0/8/248
我刚刚注意到后续的 32 个范围会产生相同的颜色结果......这不是一些有效的 RGB 编码,如果你问我,它更像是一种保护。
另一个更新: 我最终制作了一个颜色图,我可以用它来查找特定数字的正确颜色,你可以看到它看起来很奇怪。如果有人能找出一种算法来获得这张地图中指定的颜色,我将非常感激,因为我真的很好奇它是如何工作的。
【问题讨论】:
-
我个人没有看到足够的信息来解决这个难题!
-
嗯,这是我拥有的所有信息,当我读取十进制 32(十六进制的 0x20)时,它必须生成一个向量,其中 XYZ 分别设置为 0/8/0)。 33 会变成 0/8/8, 34 会变成 0/8/16,然后当我达到 64 时,Z 通道溢出,并且会以 8 递增 Y,并在 Z 中再次从 0 开始计数(直到 Y 本身溢出,这然后将 X 增加 8)