1

これは、wiki ARGB および RGBAからのカラー チャネルのビット数の順序です。

しかし、別のサイトとは異なる注文があります リンク

どちらが正しいですか??

RBGの順番は???

4

1 に答える 1

3

ウィキペディアの写真:

リトルエンディアン アーキテクチャでの ARGB 表現

リトルエンディアンアーキテクチャでの 32 ビットARGB整数のバイトのレイアウトを示します。

あなたの質問の画像は、同じ整数のビッグエンディアンレイアウトに対応しています。ARGB

したがって、答えは次のとおりです。どちらの図も正しいです。メモリ内のビットアドレス指定に関して異なるアーキテクチャを説明しているだけです。

エンディアンに関係なく、ARGBA32 ビット値の最上位バイトでありR、2 番目に重要であり、B最下位バイトとして見つけることができます

したがって、「エンディアン」プラットフォームのタイプに関係なく、対応するビットシフト操作でそれらを正しく抽出できます。

編集 実際、あなたの質問の画像は、、、、、バイトを逆の順序で表示するため(正しくアドレス指定しても)、私には奇妙にA思えますR。ウィキペディアの図に固執することをお勧めします。GB

あなたのコメントへの回答: Javaはと比較して色のTYPE_INT_BGRエンコードを逆にしました。 java.awt.image.BufferedImage.javaを参照してください。rgbTYPE_INT_RGB

case TYPE_INT_BGR:
         {
             colorModel = new DirectColorModel(24,
                                                   0x000000ff,   // Red
                                                   0x0000ff00,   // Green
                                                   0x00ff0000    // Blue
                                                   );

RGBどちらを使用するかはニーズによって異なりますが、 と で問題ないと思いますARGB

それが役立つことを願っています

于 2014-04-05T21:50:46.587 に答える