2010-11-27 21 views
4

こんにちは 私はRGBQuadArrayでこのrgbReservedが何であるかを知りたいと私はRGBの色を変更する場合がありますなぜ、いくつかの醜い行が画像上に表示?それはrgbReservedに関連していますか?rgbReservedとは何ですか?

答えて

11

メモリでは、ビットマップの行は、しばしば、BBGGRR00BBGGRR00BBGGRR00 ...の形式で格納され、各ピクセルが正確に4バイト、つまり32ビットを占めるようになります。これは多くの事を簡素化し、計算と画像操作を高速化することができます。しかし、ビットマップが赤、緑、青の輝度をバイト(0..255の範囲)で指定し、アルファチャンネルを含まない場合、各ピクセルは3バイトしか必要としません。したがって、未使用の4バイト目のピクセルがあります。そして、ピクセル構造では何かの名前を付ける必要があります。使用可能なメンバーがrgbRed,rgbGreenrgbBlueと呼ばれているとすれば、rgbReservedはかなりOKと感じます。たぶんrgbUnusedがさらに適しているかもしれませんが、未使用のパラメータを "予約済み"という名前で(将来の使用のために予約されています)、Win32には伝統があります。実際、もしあなたがアルファチャンネルを含む透明なビットマップで動作するアプリケーションならば、各ピクセルはBBGGRRAAの形式かもしれないので、rgbReservedrgbAlphaとして使うことができます。

ご質問の後半部分はそのまま返答することはできません。なぜあなたのコードがうまくいかないのか分かりません。多分、ピクセルの輝度があふれているでしょうか?どこかに愚かなバグがあるかもしれませんか?

最後に、Win32構造体のメンバーが何であるか疑問に思うなら、いつでもthe official documentationに問い合わせることができます。

+0

+1詳しい解答です。 – casablanca

関連する問題