1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

写真を正しい向きで表示する(EXIF情報を元に画像自体を回転する)

Last updated at Posted at 2020-05-30

iPhoneなどで撮影した写真を開くと、思った通りの向きで表示されないことがある。
私が直面したのは、iPhoneの写真アプリだと正しい向きで表示されるが、PS4のメディアプレイヤーだと変な向きで表示されてしまう、というもの。

PS4でも正しい向きで表示されるようにする、というお話。

2020.05.31 追記

zshスクリプトで実装してみた。
https://github.com/hosota9/ImageRotation

どうして変な向きで表示されるのか?

iPhoneで撮影した写真はJPEG形式(もしくはそれに近い形式)で保存される。

JPEG形式の画像ファイルには、画像以外にも撮影日や撮影場所など様々な情報が記録されており、その中には撮影時のカメラの向き(回転情報)も含まれている。
この回転情報のおかげで、iPhoneを90°回転して撮影したとしても、表示するときにカメラの向きが考慮され、正しい向きで表示することができる。

ただし、世の中にはこの回転情報を無視して画像を表示するソフトがある。
PS4で変な向きで表示されたのは、これが原因と思われる。

どうすれば良いか?

画像自体を回転して保存し、回転情報を削除すれば、どんなソフトでも正しい向きで表示されるはず。

やってみた

回転情報の確認

まずはexiftoolというツールで回転情報(EXIF情報)を確認する。
Homebrewが入っていれば簡単にインストールできる。

$ brew install exiftool

回転情報は Orientation という項目に格納されている。

$ exiftool <JPEG画像ファイル名> | grep Orientation | awk -F": " '{print $2}'
Rotate 90 CW

"Rotate 90 CW" すなわち「時計回りに90°回転(して表示する)」の意。

画像自体の回転

画像自体の回転は、MacOSに標準で入っているsipsコマンドが利用できる。
時計回り90°回転する場合は、以下を実行する。

$ sips -r 90 <JPEG画像ファイル名>

回転情報の削除

ここまでの操作で、回転情報を無視するソフトで正しい向きで表示されるようになる。
ただし、回転情報を考慮するソフトでは変な向きになるため、回転情報を削除する。

回転情報を削除するには、exiftoolOrientation を "1" すなわち「回転しない」に変更する。

$ exiftool -Orientation=1 -n <JPEG画像ファイル名>

以上です。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?