アプリ版:「スタンプのみでお礼する」機能のリリースについて

24bit per pixelの32×32の画像があるのですが,
pngファイルの方が4312バイトで、bmpファイルの方が3128バイトと、圧縮しているpngファイルの方が
bmpファイルより大きくなってしまっています.理由が分かりません.

また、bmpファイルのサイズも単純に考えれば 32×32×3=3072バイトのはずですが、サイズが一致しないのはなぜでしょうか。

理由が分かる方教えてください。よろしくお願いします。

A 回答 (2件)

> もう一度bmpファイルを見直しましたが、やはり3128バイトでした。



バイナリエディタでファイルフォーット確認すればハッキリしますが、ファイルを作成したアプリケーションや環境でそういう事はあるかも。
8バイト境界(8の倍数バイト)に揃えられたとか。

ちなみに、自分が確認したのはWin7付属のペイントです。

--
> もう一つ質問があるのですが、48ビットの深度を持つpng画像が64ビットの深度を持つpng画像よりファイルサイズが大きくなることはあり得ますか。

画像の中身を考えなければ、

48ビット深度の自然画像
64ビット深度の真っ白なPNG画像

だと、前者の方が大きくなる事は十分にあり得ます。


色数の違う同様の画像でなら、一般的にはそういう事はあんまり無いかも。

が、極端な話、画像フォーマット中に任意のテキストデータを埋め込めますから、いくらでも大きくできるし、添付ファイルをMIMEエンコードしたテキストを埋め込みなんて荒業も可能かも。
そういうチャンクを使ってるかどうかは不明ですが、PNGにファイルを埋め込む、偽装するソフトとかあるし。
    • good
    • 0
この回答へのお礼

ありがとうございました。参考にさせていただきます

お礼日時:2012/01/03 23:43

画像自体のサイズが小さいため、あるいは元のデータに圧縮があんまり効かないため、画像ファイルのヘッダー情報なんかの方が相対的に大きくなるためとか。



bmpの場合、
BITMAPFILEHEADER 14バイト
BITMAPINFOHEADER 40バイト
画像データ 32×32×3=3,072バイト
で、計3,126バイト、自分のところだとファイルサイズは一致します。

3,128は見間違い、書き間違いでは?

bmp ファイルフォーマット
http://www.kk.iij4u.or.jp/~kondo/bmp/

--
PNGのファイルフォーマットはややこしいですので、ちょっと割愛。

PNG ファイルフォーマット
http://www14.ocn.ne.jp/~setsuki/ext/png.htm


ただし、可逆圧縮を行なうので、ファイルのサイズは画像の内容により可変です。
32x32の真っ白なbmpをPNG形式で保存してみると、132バイトとかになりました。
ペイントのブラシで適当な色塗ると、ファイルサイズは増えます。
写真なんかを縮小して貼り付けると、もっとサイズは大きくなります。

bmpの場合、画像の内容でファイルサイズは変わりません。

この回答への補足

ご丁寧にお答えいただきありがとうございます。

Headerを忘れていました。
もう一度bmpファイルを見直しましたが、やはり3128バイトでした。

pngファイルの場合圧縮されているのでファイルサイズの理由についてはあまり分かりませんね。


もう一つ質問があるのですが、48ビットの深度を持つpng画像が64ビットの深度を持つpng画像よりファイルサイズが大きくなることはあり得ますか。

補足日時:2012/01/03 14:25
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!