我试图读取一个图像文件,其颜色以下列方式存储:
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编码,如果你问我,它更像是一种保护。
另一个更新: 我最终制作了一个色彩图,我可以用它来查找特定数字的正确颜色,你可以看到它是一个非常奇怪的地图。如果有人能够找出算法来获得这张地图中指定的颜色,我将非常感激,因为我对它的工作方式非常好奇。
答案 0 :(得分:0)
在我看来,好像他们已经完成了5-5-5或5-6-5位编码,以最大化16位内的颜色能力。这意味着让我们说5-6-5比特编码看起来如下所示。
---------------------------------------------------------------------------------
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---------------------------------------------------------------------------------
| red | green | blue |
---------------------------------------------------------------------------------
但是在你的情况下,它看起来好像是交换了字节顺序,这意味着你根据你给出的顺序实际看起来如下(在显示时按字节排序的字节):
| byte 0 | byte 1 |
---------------------------------------------------------------------------------
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---------------------------------------------------------------------------------
| low green | blue | red | hi green |
---------------------------------------------------------------------------------
答案 1 :(得分:0)