ということで、写真表示のスクリプトで Exif の撮影方向によって回転するようにしてみました。
こちらのページを見ると、 IFD0-Orientation に撮影方向が入っているそうです。起点と向きを指定できるようなのですが、普通のデジカメで普通のJPEGの場合は取りうる値は 1,3,6,8 でしょうから、pnmflip で次の角度だけ回転させればよいことになります。
Orientation | 元に戻すための回転角度 |
1 | なにもしない |
3 | 180°回転 |
6 | 270°回転 |
8 | 90°回転 |
ただ、これまでは縦位置写真の登録時は azure で無劣化回転した写真を置いてたのですが、実体だけ回転させて撮影方向の情報はそのままだったので、スクリプトを改造したらすでに回転済みの画像までさらに回転する羽目に(笑)。ということで、既存の縦位置ファイルに関しては exiftool で Orientaion だけ書き換えました。なお、この処理を行ってもレンズ情報はちゃんと残ってました。
% exiftool -Orientation=1 -n hoge.jpg
かくして縦位置で撮った写真でもうまいこと表示できるようになりました。オリジナルのファイルをそのまま置くようになったので、「大きいファイル」のリンク先は回転していない画像になるのですが、そもそも大きいファイルのリンクを押すことはほとんどないと思うので別にいいかな~と思います。