ドナドナされるプログラマのメモ

Windows用アプリのプログラミングメモ

MozJpegGUIの更新: メタデータのコピー状況

MozJpegGUI 1.3は、メタデータのコピーについてMozJpeg任せにしている。そこで、GDI+を利用する簡単なメタデータ表示ソフトを作りメタデータのコピー状況を確認してみた。

まずはサンプルデータの収集。プロが撮った写真や、プロが公開している画像だとexifがたいてい削除されていると思うので素人が撮った写真を探す。まずはTwitterを漁ってみたが画像アップロード時にexifを削除する仕様らしく色情報テーブル、輝度情報テーブル、ICC profile程度しか残っていなかった。さすが素人仕様、ちゃんと対策しているのね。となると・・・そこいらへんが甘そうな素人向けシステムは・・・はてなブログかな。というわけで漁ってみたところ、ビンゴ。jpegpngexifデータが残っていることを確認した。

サンプルデータを入手できたので、MozJpegGUI 1.3での変換前後でどう変わるか調べてみる。まずは風景写真のjpg。

風景写真jpgの変換前メタデータ

風景写真jpgの変換後メタデータ

ファイルサイズが1/5になっているので、変換は間違いなく実行できている。かつ、少なくともGDI+で認識できるデータはすべてコピーできているようだ。

次に、pngを試してみる。はてなブログから拾ってきたやつはタグ0x5110, 0x5111, 0x5112を共通で有し、画像によって0x131をもってたり0x13e, 0x13f, 0x132をもっていたりしてた。一方でMSPaintを使ってjpgをpngで保存した場合、0x303, 0x301, 0x110, 0x131, 0x132, 0x9003と多数保存されていた。とりあえず傾向を見れればいいので、風景写真をMSPaintでpng保存したもので比較してみる。

風景写真pngの変換前メタデータ

風景写真pngの変換後メタデータ

うん、がっつり消えてるなあ。最後に、gif。これもMSPaintが一番残してくれるっぽい?

風景写真gifの変換前メタデータ

風景写真gifの変換後メタデータ

gifもがっつり消えている。

というわけで、まとめるとjpeg->jpegなら(少なくともGDI+が認識できる)メタデータは消えていないが、png->jpegやgif->jpegでは多くのメタデータが消えてしまうようだ。

さて、どうやって速度を落とさずにメタデータを保持しようかな。