MozJpegGUI 1.3は、メタデータのコピーについてMozJpeg任せにしている。そこで、GDI+を利用する簡単なメタデータ表示ソフトを作りメタデータのコピー状況を確認してみた。
まずはサンプルデータの収集。プロが撮った写真や、プロが公開している画像だとexifがたいてい削除されていると思うので素人が撮った写真を探す。まずはTwitterを漁ってみたが画像アップロード時にexifを削除する仕様らしく色情報テーブル、輝度情報テーブル、ICC profile程度しか残っていなかった。さすが素人仕様、ちゃんと対策しているのね。となると・・・そこいらへんが甘そうな素人向けシステムは・・・はてなブログかな。というわけで漁ってみたところ、ビンゴ。jpegとpngでexifデータが残っていることを確認した。
サンプルデータを入手できたので、MozJpegGUI 1.3での変換前後でどう変わるか調べてみる。まずは風景写真のjpg。
ファイルサイズが1/5になっているので、変換は間違いなく実行できている。かつ、少なくともGDI+で認識できるデータはすべてコピーできているようだ。
次に、pngを試してみる。はてなブログから拾ってきたやつはタグ0x5110, 0x5111, 0x5112を共通で有し、画像によって0x131をもってたり0x13e, 0x13f, 0x132をもっていたりしてた。一方でMSPaintを使ってjpgをpngで保存した場合、0x303, 0x301, 0x110, 0x131, 0x132, 0x9003と多数保存されていた。とりあえず傾向を見れればいいので、風景写真をMSPaintでpng保存したもので比較してみる。
うん、がっつり消えてるなあ。最後に、gif。これもMSPaintが一番残してくれるっぽい?
gifもがっつり消えている。
というわけで、まとめるとjpeg->jpegなら(少なくともGDI+が認識できる)メタデータは消えていないが、png->jpegやgif->jpegでは多くのメタデータが消えてしまうようだ。
さて、どうやって速度を落とさずにメタデータを保持しようかな。