【问题标题】:RBG 24bit to RGB 8bit bit shiftingRBG 24bit 到 RGB 8bit 位移
【发布时间】:2012-10-07 12:15:50
【问题描述】:

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

谢谢杰克

编辑:

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

【问题讨论】:

  • 你说“哇,这把 EGA 从水里吹出来了!”
  • 你确定吗?但是会丢失数据。
  • @paddy:你认为今天问这种问题的人都知道 EGA 是什么样的吗?我不这么认为。历史重演……

标签: java encoding bit-shift 8-bit


【解决方案1】:

假设 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; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 2013-11-18
    相关资源
    最近更新 更多