きまブログ

2022-12から再開しました。

MacでHEIC→JPEGに変換する方法

以下の方法は、自分の使用環境のみで確認しています。
悪しからず。

mkimakima.hatenablog.com

この記事で紹介した通り、 
iPhoneで高効率かつ、4:3以外のアスペクト比で撮影すると、複数のファイルが作成されるようです。。

おそらく、アスペクト比だけでなく、カメラ設定をデフォルトから変更して撮影すると。。

以下で、生成される画像ファイルのHEICファイルを扱いやすいJPEGに変換します。

HEICファイルとは

HEICファイルは、High Efficiency Image Coding
高圧縮率の画像ファイルらしいです。

最近は、Windowsでも表示できるみたいですが、非対応のものもあり、
結果JPEGにしたほうがいろいろ便利。
また、AAEファイルはiPhone(=iOS)くらいでしか活用できそうになさそうです。

HEICファイルをJPEGファイルへ変換する。

Macで変換する方法は簡単で、以下のコマンドを実行します。

sips -s format jpeg <heic_file_name> -o <jpeg_dir>

これで、既存のファイルに影響を与えずに、HEICファイルをJPEGファイルに変換できます。

変換後のファイル名は、元のHEICファイルの拡張子を
 jpgにしたファイル名になります。

同様に sips コマンドでオプションを変えれば、

sips -g all <image_file_name>

で、画像情報(EXIF??)が出力されます。
撮影日時は、creation で表示されます。

必要なものだけ変換&抽出する。

以前の調査結果から、写真撮影時にiPhoneで生成される画像ファイルはこんな感じ。

  • ワンシャッターで4桁番号をIDとしたファイルが(複数)生成される。
  • AAEは、画像編集記録履歴ファイル?
  • 4:3で撮影した写真は、IMG_xxxx.HEIC のみ。
  • 4:3以外で撮影した写真は、IMG_Exxxx.HEIC (4:3のIMG_xxxx.HEICもある)
  • スクショは、IMG_xxxx.PNG
  • 動画は、IMG_xxxx.MOV

heicファイル自身は、加工情報を持たない画像ファイルなので、
E付きheicファイルがある場合は、E付きをjpegにする。
ない場合は、無印heicファイルをjpegにする。 (出力ディレクトリへコピー)

PNGとMOVは、そのまま出力ディレクトリへコピー

いまのところ、番号は4桁ですので、10,000以上の命名規則はわからないです。

ファイルの更新日時

ついでに、ファイルの更新日時を、撮影日時にしておきたいのが、人情というモノ。

これは、linuxでもお馴染みのtouchコマンドでなんとかなります。
作成日時は変更できないので注意。

touch -t YYYYMMDDhhmm.ss <target_filename>

処理手順

iPhoneからコピーしたファイルから、必要なHEICのみをJPEGに変換し、 その他は別ディレクトリにコピーする手順を考えておきます。

  1. E付きHEICファイルがあれば、それをJPEGに変換する。(sips)
  2. E付きがなければ、無印HEICファイルを、JPEGに変換する。(sips)
  3. JPEGの撮影日時を、取得する。(sips)
  4. 出力ファイルの更新日時に変更する。(touch)
  5. MOVファイルはコピーする。
  6. PNGファイルはコピーする。
  7. 同名のファイルが結果出力ディレクトリにある場合は、変換しない。

処理時間は、MacBook12で、だいたい1ファイル1秒かかります。
最初はしょうがないけど、
2回目以降は、結構バカにならないので、(7)の工程を入れておきます。

わりと面倒なので、Pythonスクリプト化しておきます。

(後日、きれいにして公開予定。。?)