私は画像処理とゲーム開発に不慣れです。私は、フォーマットRGB888
の背景画像を使用することを提案し、スプライト、ボタン、およびその他のレストアイコンにはARGB8888
フォーマットを使用することを提案するチュートリアルに従っていました。
最も基本的な違いは、ビットRGB888
が24ビットで、ARGB8888
が32ビットであるということです。
では、これら2つの形式の実際の違いと、それらが視覚的表現にどのように影響するかを知りたいのですが。
Wikipedia の色空間の詳細と、 Android Developers Documentation のビットマップの詳細。 [〜#〜] a [〜#〜]lpha、[〜#〜] r [〜#〜 ]ed、[〜#〜] g [〜#〜]reen and[〜#〜] b [〜#〜]lueチャネルが表示されます。アルファチャネルは、画像の透明度のレベルを示します。名前の「8」は、チャネルあたりのビット数を示します。したがって、RGBは8 + 8 + 8 = 24ビットであり、ARGBは8 + 8 + 8 + 8 = 32ビットです。
RGB
で描画すると、どちらの画像の色も選択できます。RGB888
は255
のアルファ値を想定しています。 ARGB8888
を使用してアルファ値を追加すると、0(完全に透明)から255(完全に不透明)までの数値で透明度を自分で設定できます。 Androidのメニューに透明度をひどく追加する例は、次の画像のようになります。
RGB888
は8ビットではなく、24ビットです。あなたが言及する両方のフォーマットはチャネルあたり8ビットですが、1つは3つのチャネルを持ち、もう1つは4つを持っています。
違いは、ARGB
が各ピクセルの不透明度を指定するアルファチャネルを追加することです。これが、半透明の画像を取得する方法です。
RGB
はARGB
と同じですが、アルファ値が255である、つまり完全に不透明であるという暗黙の前提があります。
A
-アルファ
R
-赤
G
-緑
B
-青
違いは、ARGB
が各ピクセルの不透明度を指定するアルファチャネルを追加することです。それを使用することにより、半透明の画像/オーバーレイを取得できます。
RGB888
は8ビットではなく24ビットです。 チャネルあたり8ビットの3つのチャネルがあります。
ARGB8888
チャネルあたり8ビットの4つのチャネルがあります。
アルファ値は0〜255で、0は完全に透明、255は完全に不透明です。
ARGB_8888
Documentation 言います:各ピクセルは4バイトに格納されます。各チャネル(RGB
および半透明のアルファ)は、8ビットの精度(256の可能な値)で格納されます。この構成は非常に柔軟性があり、最高の品質を提供します。可能な限り使用する必要があります。