簡體   English   中英

如何將24位RGB轉換為8位RGB

[英]How to convert 24 bit RGB to 8 bit RGB

我想知道將24位RGB顏色(每種顏色8位)轉換為8位顏色(2位藍色,3位綠色,3位紅色)的最佳方法是什么。 我想要這樣做的C代碼。

8位RGB通常是索引(調色)顏色格式,請參閱調色板(計算)

你描述它的方式,從24 bpp中獲得8 bpp是非常簡單的 - 你需要剝離最低有效位並將這些位合並為每個像素的單字節值。 AFAIK它不是標准或眾所周知的像素顏色表示。

不是在C中,而是在javascript中。

encodedData = (Math.floor((red / 32)) << 5) + (Math.floor((green / 32)) << 2) + Math.floor((blue / 64));

https://stackoverflow.com/a/25258278/2130509

要將8位[0 - 255]值轉換為3位[0,7],0不是問題,但記住255應轉換為7,因此公式應為Red3 = Red8 * 7/255。

要將24位顏色轉換為8位(RRRGGGBB),

8bit Color = (Red * 7 / 255) << 5 + (Green * 7 / 255) << 2 + (Blue * 3 / 255)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM