HEICをJPEGに変換する
iPhone で撮った写真をこのページに落とすと、JPEG に変換します。 まとめて50枚まで扱えます。写真はブラウザの中だけで変換され、 どこにも送信されません。 位置情報だけを消す、撮影日時は残す、といった選び方もできます。
HEIC とは何か、なぜ開けないのか
HEIC は iPhone が標準で使う写真の形式です。 iOS 11(2017年)から既定になりました。 同じ画質なら JPEG のおよそ半分の大きさで済むため、 端末の容量を節約できます。
小さくできるのは、動画の圧縮方式である HEVC(H.265) を 写真1枚に応用しているためです。JPEG より後に作られた分だけ効率がよい代わりに、 復号に必要な処理が重く、対応していない環境が多く残っています。
Windows では、追加のコーデックを入れないと写真アプリで開けません。 Web サイトのアップロード欄が受け付けないこともあります。 メールに添付して送ると、相手の環境によっては「開けない」と言われます。 ブラウザで HEIC を表示できるのは、いまのところ Safari 17 以降(macOS Sonoma / iOS 17 以降)だけです。 Chrome と Firefox は、macOS 上であっても HEIC を表示しません。
変換するより、はじめから JPEG で撮るほうが早い
これから撮る写真の話であれば、このツールは要りません。 iPhone の設定を変えれば、最初から JPEG で撮れます。
設定 > カメラ > フォーマット > 「互換性優先」
これで撮影した写真は JPEG になります。 容量は増えますが、どの環境でもそのまま開けます。 「高効率」に戻せばまた HEIC で撮れます。
すでに撮ってしまった写真を渡す必要がある、というときだけ変換してください。 なお 設定 > 写真 > MacまたはPCに転送 > 「自動」 にしておくと、 パソコンへ取り込むときに iPhone 側が JPEG へ変換してくれます。 ケーブルで取り込むなら、こちらのほうが手間がかかりません。
写真の位置情報について
写真には Exif と呼ばれる撮影情報が埋め込まれています。 撮影日時、カメラの機種、絞りやシャッター速度、 そして 撮影した場所の緯度と経度です。
位置情報は、自宅や職場で撮った写真をそのまま公開したときに問題になります。 フリマアプリの出品写真、SNS に上げた部屋の写真、 掲示板に貼った画像から住所が分かった、という事例が繰り返し起きています。 多くの SNS は投稿時に Exif を削除しますが、 メールやチャットでそのまま送る場合、ファイル共有サービスに置く場合は残ります。
このツールの既定は「位置情報だけ削除」です。 撮影日時とカメラの情報は残るので、写真を日付で並べ替えられます。 消すのは GPS の項目だけです。
位置情報を残したくない撮り方をしたい場合は、 設定 > プライバシーとセキュリティ > 位置情報サービス > カメラ > 「許可しない」 にすると、そもそも記録されなくなります。
向きが変わってしまう写真について
横向きに撮った写真が、変換すると回ってしまうことがあります。 これは、写真のデータ自体は回転していないのに、 「表示するときに90度回して」という指示だけが撮影情報に書かれているためです。 指示を読まないソフトで開くと、寝たままの絵が出ます。
このツールは、その指示を読んで画像データそのものを回してから JPEG にします。撮影情報を「すべて削除」にした場合でも、 回してから削除するので、向きは正しいままです。
このツールの制限
- 一度に50枚まで。1枚は50MBまでです。それ以上は分けて変換してください。
- 動画は変換できません。iPhone の動画(.mov / HEVC)は対象外です。
- 出力は JPEG のみです。PNG や WebP には変換しません。「どこでも開ける形式にする」ことが目的なので、いちばん確実な JPEG に絞っています。
- JPEG から HEIC への変換(逆方向)はできません。
- とても大きな写真は変換できません。ブラウザが一度に扱える大きさに上限があり、iPhone 14 Pro 以降の 4800万画素の写真は超えることがあります。その場合は画面に理由を表示します。
- 編集はできません。回転・切り抜き・明るさの調整は行いません。
使用しているソフトウェアとライセンス
Safari では、ブラウザ自身が HEIC を読めるため、このページは追加のプログラムを読み込みません。 それ以外のブラウザでは、変換を始めたときに HEIC の復号プログラムを読み込みます。 約1.4MB あるので、最初の1枚だけ少し待つことがあります。
復号に使っているのは libheif と libde265 を WebAssembly にコンパイルしたものです。 これらのライブラリは GNU 劣等一般公衆利用許諾書(LGPL)第3版で保護されています。 このページは、ライブラリを改変せず、独立したファイルとして配布しています。
- libheif 1.23.2 — Copyright © Dirk Farin ほか、struktur AG。LGPL-3.0
- libde265 1.0.15 — Copyright © struktur AG。LGPL-3.0
ライセンスの全文(LGPL-3.0 / GPL-3.0)と、 ライブラリを差し替える方法は ライセンス表示のページにまとめてあります。
ソースコードの入手先は以下の3つです。いずれも改変せずにビルドしています。
- libheif v1.23.2 — github.com/strukturag/libheif
- libde265 v1.0.15 — github.com/strukturag/libde265
- WebAssembly へのビルド手順 — github.com/catdad-experiments/libheif-emscripten
うまくいかない場合
「すでに JPEG です」と出る。 拡張子が .heic でも、中身が JPEG になっていることがあります。 クラウド同期やメール送信の途中で変換されたものです。 そのまま使えるので、変換は要りません。 このツールは拡張子ではなくファイルの中身を見て判定しています。
iPhone から選ぶと HEIC が出てこない。 iOS の写真選択では、選んだ時点で JPEG に変換されて渡されることがあります。 その場合も「すでに JPEG です」と表示されるので、変換せずにそのまま使ってください。
変換に時間がかかる。 Safari 以外では、1200万画素の写真1枚あたり1〜3秒かかります。 50枚だと数分になることがあります。途中で「中止する」を押せます。 それまでに変換できた分は残ります。