なぜ写真が横向きになるの?EXIF オリエンテーション タグを深く理解する
EXIF Orientation の全8値と回転・鏡像の原因を理解し、ブラウザーで再エンコードしたコピーを検証する手順を解説します。
保存画素と表示指示を分けて考える
写真は、横向きの画素を保存していても、ソフトウェアが EXIF Orientation の指示に従えば正立して見えます。一方、画素そのものが正立しているファイルもあります。縦位置の写真すべてに回転が必要なわけではなく、書き出しの誤りや画素に保存済みの回転が原因の場合もあります。
確認したいのは、画素がどの向きで保存され、表示側がどの変換を加えているかです。タグの削除と画素の回転は別の処理です。
8つの値の意味
以下は保存画素から意図した表示への変換です。対角線の角は保存画像を基準とし、時計回りは画面上の方向を指します。
| 値 | 表示するための変換 |
|---|---|
| 1 | 変換なし |
| 2 | 左右反転 |
| 3 | 180度回転 |
| 4 | 上下反転 |
| 5 | 左上から右下への対角線で転置 |
| 6 | 時計回りに90度回転 |
| 7 | 右上から左下への対角線で反転 |
| 8 | 時計回りに270度、つまり反時計回りに90度回転 |
5〜8では表示の幅と高さが入れ替わります。2、4、5、7には反転を含むため、直立しているかだけでなく文字が鏡像になっていないかも確認します。ExifTool の方向値定義と exifr の方向読み取り APIも参照してください。リーダーによっては数値ではなく説明文を表示します。
変更する前の切り分け
- 原本を保管し、作業用コピーを EXIF ビューアーで開き、全項目タブで Orientation を探します。
- 問題の起きるアプリでも同じファイルを開き、読める文字や左右非対称の物で反転を確認します。
- 分かる場合は保存寸法と表示寸法を記録します。幅と高さの入れ替わりは手掛かりであり、破損の証明ではありません。
- 直前の工程でタグを削除したのか、画素を回転したのか、別のアプリが再び方向を適用したのかを確認します。
- タグがない、または結果が空でも値を推測しないでください。別のリーダーで確認します。このビューアーはすべての構造や解析エラーを表示するものではありません。
例えば合成画像の保存寸法が120×80、Orientation が6なら、意図した表示は80×120です。タグだけを削除すると、横向きの保存画素が現れる可能性があります。逆に画素を正立させた後も古い値6を残すと、二重回転を招きます。反転を含む場合も同様です。
2つの修復方針
表示指示を直す方法: 対応する外部メタデータエディターなら、画素を意図的に再圧縮せずに誤った Orientation を変更できます。ただし、画素の正しい解釈が分かっていて、表示先がタグに従うことが前提です。ExifCheck の JPEG EXIF エディターに Orientation の編集欄はありません。日時・説明・GPS の変更で向きは直せません。
表示結果を画素に反映する方法: 正しい変換を画像データに適用し、古い指示を削除するか、矛盾なく通常の向きに設定します。一般的な画像編集アプリの JPEG 書き出しは再圧縮を伴う場合があります。専用の JPEG 可逆変換にも条件があり、「回転」なら必ず無損失とはいえません。
ブラウザーの削除処理の実態
EXIF 削除ツールはブラウザーの画像デコーダーで読み込み、デコード後の自然寸法で canvas に描画して、新しいファイルへエンコードします。方向処理はデコーダーに依存し、独立した「自動方向補正」スイッチや、手動実装の8方向変換はありません。
プロジェクトに記録された合成ケースでは、Orientation 6 の JPEG スモークテストを含め、表示方向の保持を確認しています。ただし、すべてのブラウザー、OS、形式、実機カメラファイルでの保証ではありません。合成メタデータ実験室は既知の入力を比較する場であり、全環境での互換性認証ではありません。
JPEG と WebP は最高品質でも非可逆圧縮による変化が起こり得ます。PNG の圧縮は可逆でも、デコードや色変換を経た画素が元と完全一致するとは限りません。HTML の canvas シリアライズ仕様が説明するのは新しいビットマップの出力であり、元ファイル内のタグ編集ではありません。
ダウンロードした結果を検証する
プレビューだけで判断せず、ダウンロードしたコピーを開き直します。方向項目、正立表示、文字の反転、寸法、色を確認し、特に最初に問題が起きたアプリで試してください。画素自体が間違っていれば、タグが通常または欠落していても修復成功とはいえません。
正立した写真でも、GPS や個人を示す文字情報が残っていれば共有上の問題になります。EXIF 項目の読み方と PNG・JPEG のメタデータ比較も確認して、処理方針を選んでください。
関連記事
オリエンテーション・タグ · exif · トラブルシューティング