RBG 24位到RGB 8位位移

时间:2012-10-07 12:15:50

标签: java encoding bit-shift 8-bit

如何使用java中的位移在单个字节中存储3个数字,即使用R的前3位,G的后3位和最后2位B.我想我知道如何检索来自字节的数字,但编码和解码的例子会很棒。

谢谢杰克

编辑:

对于B,R和G的值范围为0-7和0-3。

1 个答案:

答案 0 :(得分:2)

鉴于rgb的范围为0 - 255:

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;