デジカメとかiPhoneで撮影したjpegには、Exifって言うおまけの情報があって、そこにOrientationって言う「画像の向き」を表すデータがある。
手元にあるのはiPhone4とCanon EOS Kiss Digitalだけど、どちらも横長の写真を撮るとOrientationは0となって、縦長の写真を撮るとOrientationは6とか8で90度回転になる。
そして、jpegの画像としてはどちらも横長の画像になるのだ。
んで、ExifのOrientationに対応した画像ビューアで見ると、何も気にせずに正しく見られるのだが、対応していないもので見ると90度回転して見える。
対応していないものの代表がWebブラウザで、縦長の写真をそのままblogにアップロードすると、90度回転した画像になってしまう。(ちなみに、iPhoneのSafariはOrientationを理解するようで、これはこれで変になる)
そこで、カメラから画像をPCに取り込むときに、picmvと言うソフトを使ってOrientationに従って回転させていた。
しかし、このソフトにも問題があって、回転させた元サイズ画像のOrientationが6とか8のままなのだ。さらに、同時に縮小画像を作成する機能も使っているのだが、こちらはExifが削除されてしまうため、回転させても問題ないと言えば問題ない。
iPhoneから写真を取り込むときは、最近Macに乗り換えたので、picmvの代わりにiPhotoを使って取り込んで、それを自前のスクリプトでpicmvの保存先と同じディレクトリに縮小したりしながらコピーするようにしている。(こいつは、iPhotoが回転してくれた上に正しいExifにしてくれるので問題ない)

そして、写真をblogに上げるのにもう一つ手段を使っていて、それがmail2entryを使ったメール添付からのものだ。
以前mail2entryでサムネイル対応 - PC日記の記事のときに回転と縮小に対応したのだが、これの場合はExifデータが消えていた。

さらに、blogに写真を上げる上ではプライバシーの問題もある。記録と言う意味では、Exifが撮影日時や撮影場所の情報を持っているのは非常にありがたいのだけれど、それを何も考えずにblogにアップしてしまうといろいろと差し障りがある場合があるかもしれない。

と、言うわけでこの辺の問題を解決すべく、少し手を入れてみることにする。
まずは、mail2entryの改善から。

とりあえず、気に入らないところとどう対応するかを明確にしておこう。
  • 画像を回転したのに、Exifに回転前のOrientationが残っている
    →Orientationを0にする
  • 画像を回転したのに、Exifに回転前のThumbnailが残っている
    →不要なので削除する
  • 画像をリサイズしたのに、Exifにリサイズ前のサイズが残っている
    →正しいサイズにする(優先度低)
  • 画像に位置情報が残っている
    →消したいときだけ消せるようにする
ここまで、mail2entryに加えた修正ではExifが消えるのを、元のExifが残ると勘違いしていたための記述。
以下は、修正には至らなかったけど、pexifの紹介として残しておく。

すべての要望はExif情報の書き換えで対応となるので、Exifの書き換えができる必要がある。以前Orientationを取り出すのに使ったPILの_getexif()はExif情報の取得しかできないので、別の手段で更新してやる必要がある。
調べてみたところ、Emerge Technology: PythonでExifの編集と言う記事を見つけ、pexif - pexif is a Python library for parsing and more importantly editing EXIF data in JPEG files. - Google Project Hostingの存在を知った。
FreeBSDのportsにはpyexifはあったけどpexifはなかったので、ソースからインストール。と言っても、アーカイブを展開して
# python setup.py install
するだけだ。

と、言うわけで実際には修正しないことにしたので、今回は不要になってしまった(やろうと思えば、消えてしまうExifをpexifを使って復活させると言うことができるのだけれど、面倒なので今回はパス)のだけれど、mail2entryをgithubに上げたのでURLだけ書いておく。false-git/mail2entry - GitHub

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: 画像の回転とExifのOrientation

このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/2638

コメントする

このブログ記事について

このページは、falseが2011年5月21日 17:53に書いたブログ記事です。

ひとつ前のブログ記事は「macでNASをオートマウントする」です。

次のブログ記事は「macでFreeBSDのホームディレクトリをオートマウントする」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

広告

Powered by Movable Type 6.1.1