0

如何使用java中的位移将3个数字存储在一个字节中,即前3位用于R,接下来的3位用于G,最后2位用于B。我想我知道如何从字节,但是编码和解码的例子会很棒。

谢谢杰克

编辑:

R 和 G 的值范围是 0-7 和 B 的 0-3。

4

1 回答 1

2

给定r和在 0 - 255 范围内gb

rgb = (b >>> 6) << 6 | (g >>> 5) << 3 | (r >>> 5); 

这是按以下顺序填写结果:

+--+--+--+--+--+--+--+--+
|B7|B6|G7|G6|G5|R7|R6|R5|
+--+--+--+--+--+--+--+--+

即,我假设当您说“第一”时,您的意思是最不重要的。如果你想要他们反过来,那就是:

rgb = (b >>> 6) | (g >>> 5) << 2 | (r >>> 5) << 5; 
于 2012-10-07T12:19:21.323 回答