web-dev-qa-db-ja.com

画像形式RGB888とARGB8888の違い

私は画像処理とゲーム開発に不慣れです。私は、フォーマットRGB888の背景画像を使用することを提案し、スプライト、ボタン、およびその他のレストアイコンにはARGB8888フォーマットを使用することを提案するチュートリアルに従っていました。

最も基本的な違いは、ビットRGB888が24ビットで、ARGB8888が32ビットであるということです。

では、これら2つの形式の実際の違いと、それらが視覚的表現にどのように影響するかを知りたいのですが。

11
Crawler

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で描画すると、どちらの画像の色も選択できます。RGB888255のアルファ値を想定しています。 ARGB8888を使用してアルファ値を追加すると、0(完全に透明)から255(完全に不透明)までの数値で透明度を自分で設定できます。 Androidのメニューに透明度をひどく追加する例は、次の画像のようになります。

17
RossC

RGB888は8ビットではなく、24ビットです。あなたが言及する両方のフォーマットはチャネルあたり8ビットですが、1つは3つのチャネルを持ち、もう1つは4つを持っています。

違いは、ARGBが各ピクセルの不透明度を指定するアルファチャネルを追加することです。これが、半透明の画像を取得する方法です。

RGBARGBと同じですが、アルファ値が255である、つまり完全に不透明であるという暗黙の前提があります。

7

A-アルファ

R-赤

G-緑

B-青

違いは、ARGBが各ピクセルの不透明度を指定するアルファチャネルを追加することです。それを使用することにより、半透明の画像/オーバーレイを取得できます。

RGB888は8ビットではなく24ビットです。 チャネルあたり8ビットの3つのチャネルがあります。

ARGB8888チャネルあたり8ビットの4つのチャネルがあります。

アルファ値は0〜255で、0は完全に透明、255は完全に不透明です。

ARGB_8888 Documentation 言います:各ピクセルは4バイトに格納されます。各チャネル(RGBおよび半透明のアルファ)は、8ビットの精度(256の可能な値)で格納されます。この構成は非常に柔軟性があり、最高の品質を提供します。可能な限り使用する必要があります。

5
Sagar Pilkhwal