Takeout JSON

HEIC を JPG に一括変換しても撮影日と位置情報を残す方法(Windows 11/10・Mac・Linux)

iPhone の HEIC を JPG にまとめて変換するとき、日付・GPS・向きを失わない方法です。Windows の標準機能、無料ソフト、Mac と Linux のコマンド、変換後の確認方法、そして Takeout の写真で先にやるべきことを説明します。

iPhone は HEIC で撮影します。テレビ、プリント注文の端末、会社のパソコン、実家の Windows、そして使うウェブサイトの半分は、それを開けません。変換は簡単です。日付と場所を失わずに変換するのが、みんなが間違えるところです。

HEIC とは何か

HEIC は、4K 動画と同じ HEVC で圧縮した HEIF 画像に Apple が付けた名前です。同じ画質の JPEG の半分ほどの容量で写真を保存します。Apple は 2017 年に既定にしました。Samsung など一部の Android も撮影できます。

Apple 以外での対応はまちまちです。Windows は完全に対応するのに Microsoft Store の有料コーデックが必要です。Linux の画像ビューアーは対応するものとしないものがあります。古いカメラ、テレビ、フォトフレーム、ウェブのフォームは単に拒否します。JPEG はどこでも開きます。それが変換する理由のすべてです。

悪い変換で失うもの

3 つあり、起きやすい順に並べます。

日付。EXIF のまったくない新しい JPEG を書く変換ソフトがあります。写真に残るのはファイルの日時、つまり変換した瞬間だけになります。ライブラリ全体が 1 日に集まります。

場所。同じ原因です。GPS は EXIF にあります。EXIF を落とせば、場所も落ちます。

向き。HEIC は回転を画像の属性として保存します。それを無視する変換ソフトは横向きの JPEG を作ります。読んで反映したうえで EXIF の向きタグもコピーする変換ソフトは、一部のビューアーで二重に回転する JPEG を作ります。

ウェブの変換サービスには 4 つ目の損失があります。写真がパソコンから出ていくことです。GPS の入った家族写真では、これは本当のコストです。

「十分に無劣化」

HEIC から JPEG は、決して真の無劣化ではありません。HEVC と JPEG は別の圧縮で、ピクセルをデコードして再エンコードしなければなりません。JPEG 品質 90 以上なら、どの画面でもどのプリントでも差は見えません。ファイルは大きくなり、だいたい 2 倍です。それが互換性の代償です。

容量が許すなら HEIC の原本を残してください。小さくて高画質な版です。JPEG が必要な場所のためにコピーを変換します。

手作業で変換する

Windows。Microsoft Store から「HEIF 画像拡張機能」と「HEVC ビデオ拡張機能」を入れます。すると「フォト」アプリが HEIC を開き、「名前を付けて保存」で JPEG にできますが、1 枚ずつです。まとめてやるなら、XnView MP か、プラグインパックを入れた IrfanView がフォルダーごと変換でき、メタデータを保つオプションにチェックを入れれば EXIF を保ちます。ImageMagick も無料で、magick mogrify -format jpg *.HEIC は既定で EXIF を保ちます。

Mac。Finder で写真を選んで右クリック、「クイックアクション」、「イメージを変換」で JPEG を選びます。GPS と日付を含む EXIF を保ち、向きも処理します。プレビューの「書き出す」は 1 枚に同じことをします。ターミナルなら sips です。

sips -s format jpeg photo.heic --out photo.jpg

Linux。libheif の heif-convert がたいていのリポジトリにあります。

for f in *.heic; do heif-convert -q 92 "$f" "${f%.heic}.jpg"; done

EXIF を引き継ぎます。ImageMagick の magick も、libheif 付きのビルドなら HEIC を読みます。

どの変換のあとも、exiftool photo.jpg で 1 枚確認し、DateTimeOriginalGPSLatitude があるか見てください。なければツールが落としています。exiftool で原本からコピーし直せます。

exiftool -tagsfromfile photo.heic -all:all photo.jpg

Takeout の写真はどこが違うか

Google フォトは HEIC を HEIC のまま保存します。iPhone のライブラリの Takeout エクスポートは HEIC だらけで、日付と GPS はファイルの中ではなく .json サイドカーにあります。サイドカーを読まずに JPEG に変換すると、二重に日付のない JPEG ができます。まず .json の日付を HEIC に書き込み、それから変換してください。Takeout 向けの詳しい手順は Takeout の HEIC を JPG に変換する にあります。

アプリでやる

Takeout JSON Metadata Fixer は、整理の実行の一部として HEIC を JPG に変換し、同時に日付と GPS を JPEG に書き込みます。出どころが HEIC 自身の EXIF でも、Takeout のサイドカーでも同じです。

「HEIC から JPG」をオンにします。フォルダーやエクスポート内のすべての HEIC が、DateTimeOriginal、GPS、その他のメタデータを引き継いだ JPEG になります。向きは、ピクセルを正しい向きに回転してタグを標準に設定する方法で処理するので、あとで横向きに表示されることはありません。HEIC 以外のファイルはそのまま通ります。

Mac では Apple 自身のフレームワークでデコードします。Windows と Linux ではアプリが独自の HEIC デコーダーを持っているので、Microsoft Store のコーデックもディストリビューションのパッケージも要りません。すべてお使いのマシンの中で起き、何もアップロードされません。

変換は他の機能と組み合わせられます。日付から始まるファイル名、年/月フォルダー、USB メモリへの直接書き出し。1000 枚まで無料、無制限は 19.99 米ドルの買い切りで、Windows、Mac、Linux に対応し、画面は日本語です。

よくある質問

変換したあと HEIC を消していいですか?

容量があるなら消さないでください。HEIC のほうが良い原本です。保管用のフォルダーに入れておき、共有や HEIC を読めない機器には JPEG を使います。

変換すると写真の日付は変わりますか?

変わらないはずです。良い変換ソフトは EXIF をコピーするので、JPEG の DateTimeOriginal は同じです。ファイルの更新日時は変換した時刻になります。だからこそ、ファイルの中の日付が大事なのです。

Live Photos はどうなりますか?

Live Photo は HEIC と短い MOV の組です。HEIC を JPEG に変換しても MOV はそのままです。組を理解するアプリが 1 つとして見られるよう、同じ名前で両方を残してください。

画質の設定はありますか?

たいていのツールの既定は 85 から 95 の間です。85 未満では空や肌にノイズが見えることがあります。95 を超えると、見た目の向上なしにファイルだけが大きくなります。