Manul Tech

iPhoneのフォトライブラリのリサイズ画像の回転問題

<input type="file">で画像をアップロードさせたい場合、iPhoneでは厄介な問題がある。
ファイルの選択時にiOSの機能でオリジナルサイズの他、小/中/大が選択できるのだが、このリサイズされた画像のExif情報のOrientationの値がぶっ壊れているのだ。

選択可能なサイズ

例えば縦位置画像の場合、Exif情報のOrientation値は「6」で、オリジナルサイズの場合はその情報が正しく取得できる。
iPhoneは画像は横位置で保存しているらしいが、Orientation値が「6」のため、時計回りに90°回転させて撮影時の位置、つまり縦位置で表示させることができる。
しかしリサイズされた画像の場合、Orientation値がなぜか「1」になるため、横向きのまま表示されてしまう。

Exif情報のOrientationについては以下の記事が詳しい。

Qiita
JavaScript で Exif の Orientation をパースして画像を正しく表示する方法

この件について調べてみたところ、GitHubとStack Overflowで言及されていた。

GitHub
Image orientation issue with latest iOS 13.1.2 "Choose Image Size" feature

Stack Overflow
iPhone OS image/photo resizing tool changing EXIF orientation data

内容を確認すると、どうやらiOSが何らかの対応をしてくれないとどうにもできなさそう。。
仕方がないのでファイル選択後にユーザ側で画像を回転させることができる機能を追加するという何とも微妙な解決策に。
リサイズ画像を選べるのは、アップロードさせるファイルサイズを抑えたい場合に非常に有難いのだが、これではちょっとな。

コメント0