6

24ビットRGBカラー(1色あたり8ビット)を8ビットカラー(2ビットブルー、3グリーン、3レッド)に変換する最良の方法は何でしょうか。これを行うためのCコードが欲しいのですが。

4

3 に答える 3

7

8ビットRGBは通常、インデックス付き(パレット化)カラーフォーマットです。パレット(コンピューティング)を参照してください。

ただし、説明したように、24bppから8bppを取得するのは非常に簡単です。最下位ビットを削除し、ピクセルごとにビットを1バイト値にマージする必要があります。AFAIKは、標準またはよく知られたピクセルカラー表現ではありません。

于 2011-10-05T06:59:26.440 に答える
2

Cではなくjavascriptで。

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

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

于 2014-08-12T07:18:28.663 に答える
0

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)
于 2016-06-17T05:56:20.577 に答える