「はてな」に「今日の1枚」をUPすると、ビットの深さが48になる。

ビットの深さ48

http://d.hatena.ne.jp/a-san/20100213#p1
先日のコメントでunibonさんから指摘されてわかったのですが、
なんかUPした画像サイズが大きいです。


UPした画像のファイルサイズは100,950 バイトです。
縦150dot×横150dotで、1色につき3バイトとすると、67,500バイト???
無圧縮でもファイルサイズの方が1.5倍以上大きいです。why???


http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html#C.IHDR
このPNGはIHDRのColorType=2で、BitDepths=16
えっ!? RGBそれぞれに16ビットも使ってるの?ぢゃあ1ドット=6バイト???


UP前の画像を調べてみたらColorType=2で、BitDepths=8です。
つまり、RGBそれぞれ8ビットです。
そもそも、ソース中に BufferedImage.TYPE_3BYTE_BGR と指定してますからね。
(ここら辺はJavaのライブラリを使っているのでScalaは関係ありません。)


ファイルのプロパティでも確認できますね。
UPした画像は「ビットの深さ48」で、UP前の画像は「ビットの深さ24」です。
はてな」にUPするとき、はてな側が150×150ドットに収まるように間引かれるのですが、
なぜが色の深さは倍の16ビットに深くなっています。なんで?>はてな
PNGもちゃんと75%ぐらいに圧縮しているし、ScalaJavaも無関係でした。
犯人は「はてな」でした。www