2017-02-08 5 views
-1

そう、私は32ビットのPNG画像の画像ステガノグラフィーに関するプロジェクトを行った。 今日、私はgifやbmpのような24ビットイメージのサポートを追加することにしました。 私は、24ビットというビット深度プロパティを確認しました。 ピクセル値を抽出したとき、私はそれが符号付き32ビット整数であることに気付きました。最初の8ビット(アルファチャンネルまたは透明ビット)はすべて「1」に設定される。24ビット深度画像にピクセルの32ビット値があるのはなぜですか?

なぜ24ビットイメージが32ビット値で表されますか?

PS:最初の8ビットのすべてが1であることは、そのピクセルに透明性がないことを意味します。

+2

24ビット整数型がないためです。 32ビットの 'int'が次に大きい。そして、4つの24ビット数値を3つの32ビットintにパックするという余計な努力は、それに値するものではありません。 –

+0

@AndyTurner ok、簡単な質問:最初の8ビットを0に設定すると、ピクセルの色が変わりますか?それとも同じに見えるでしょうか? – NoobScript

+0

イメージの表示方法によって異なります。見つけられる最も簡単な方法は、試してみることです。 –

答えて

0

@ AndyTurnerのコメントを参照してください。

また、最初の8ビットに変更を加えることができないので、私のコメントの例では、画像は同じように見えます。

24ビットイメージの(32ビット値)ピクセルの最初の8ビットを変更することはできません。 これらのビットに対する変更は残っていません。

ソース:

値を変更してイメージを保存してテストしました。 保存されたイメージには以前と同じ最初の8ビット(すべて1)が残っていました。 しかし、残りの24ビットへの変更は維持されました。

関連する問題