0
如何在java中使用位移在一個字節中存儲3個數字,即前3位用於R,後3位用於G,最後2位B. I認爲我知道如何從字節中檢索數字,但編碼和解碼的例子會很好。RBG 24bit到RGB 8bit位移
由於傑克
編輯:
用於R和G的值的範圍將是0-7和0-3爲B.
如何在java中使用位移在一個字節中存儲3個數字,即前3位用於R,後3位用於G,最後2位B. I認爲我知道如何從字節中檢索數字,但編碼和解碼的例子會很好。RBG 24bit到RGB 8bit位移
由於傑克
編輯:
用於R和G的值的範圍將是0-7和0-3爲B.
鑑於r
,g
和b
是在範圍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;
你去「哇,這吹EGA出水!」 – paddy
你確定嗎?雖然會有數據丟失。 – nhahtdh
@paddy:你認爲今天有人問這樣的問題是否知道EGA是什麼樣的?我不這麼認爲。歷史重演... –