メインコンテンツへ移動

HEICをJPGに変換

「HEICをJPGに変換」は、iPhoneが撮影した写真を、他の環境ならどこでも開ける形式へブラウザ内で変換します。ChromeとFirefoxは単独ではHEICをデコードできないため、このページは本物のHEVCデコーダー——WebAssemblyにコンパイルされ、HEICファイルをドロップしたときにだけ取得されるもの——を読み込み、ローカルで実行します。写真がアップロードされることはありません。

端末内で処理

ここにHEIC写真をドロップ

ページのどこにでもドロップできます · ファイルを選択 · 100 MB

対応形式: HEIC, HEIF

HEICをJPGに変換はどう動きますか?

HEICは、2017年のiOS 11以降、iPhoneが写真の保存に使っている形式です。同じ画質ならJPEGの約半分のサイズになる優れた形式ですが、同時に、「WindowsノートPCでは何を試しても開けないファイルのフォルダ」に大勢が悩まされる原因でもあります。

ブラウザでHEICが開けない理由

HEICはコンテナです。外側がHEIF、内側がHEVC——H.265としても知られる映像コーデック——です。HEVCはデコーダー実装に課金するパテントプールの対象で、ChromeとFirefoxは画像用のデコーダーを搭載しない判断をしました。Safariは搭載できます。AppleがOS全体についてHEVCをライセンス済みだからです。そのため、MacやiPhoneではHEICファイルがどこでも開ける一方、WindowsやAndroidでは追加ソフトなしに同じファイルが読めません。

このページが代わりにしていること

このページは独自のデコーダーを同梱しています。オープンソースのリファレンス実装libheifをWebAssemblyにコンパイルし、このタブの中で動かします。ファイルをドロップすると、まずブラウザ自身にデコードを試みさせ、断られたうえでバイト列が本当にHEIFコンテナだった場合にだけ、デコーダーをダウンロードして処理させます。サイズは約2メガバイト。取得は1回きりで、本当に必要な人だけが対象です。JPEGをここで変換する分には何も読み込まれませんし、Safariユーザーはブラウザがネイティブで対応しているため、そもそも必要ありません。

デコードされたピクセルはその後、このサイトの他の画像と同じ経路——canvasと、ブラウザ内蔵のJPEGまたはPNGエンコーダー——を通ります。

判別はファイル名ではなく中身で

拡張子は主張であって、証拠ではありません。実体がJPEGの.heicはよくあります(変換ではなくリネームするツールがあるため)。逆のケースも、逆のことをする共有シートを通るたびに起こります。そこでここでの判別は、ファイル先頭のftypボックスを読んで行います。ISO base mediaコンテナが自分の種別を宣言する場所です。major brandとcompatible-brandsリストの両方を見ます。iPhoneはheicを書き込み、Google Photosのエクスポートはmif1を書き、リストの後の方にheicを並べます。

向き情報。この種の変換がしくじりがちなポイント

スマホを横向きに構えて撮ると、センサーが読んだ通りの向きで画像が記録され、どこが上かというメモが添付されます。このメモを無視するコンバーターは、横倒しの写真だらけのフォルダを生み出します。ここではエンコード前に回転をピクセルへ適用するため、出力にメモは不要で、どこでも正立します。

Live Photoとバースト

1つのHEICには複数の画像を格納できます。Live Photoは静止画に加えて短い動画を持ち、バーストは連写の並びを持ちます。変換するのは、カメラロールに表示される最初のトップレベル画像です。Live Photoの動画部分は画像ではないため、取り出しません。

プライバシーの話はおまけではない

HEICファイルはほぼ例外なく個人の写真で、撮影場所のGPS座標付きです。アップロードを求める「無料のHEICコンバーター」はどれも、位置情報付きのカメラロールの複製を求めているのと同じです。ここではローカルで動くため、何も送信されません。さらに再エンコードでEXIFブロックは落ちるので、出力のJPEGには、入力のHEICが持っていた位置情報が残りません。

問題を元から断つ

iPhoneでは「設定 → カメラ → フォーマット → 互換性の高い形式」にすると、カメラがJPEGを直接保存するようになります。ファイルサイズの効率は少し落ちる代わりに、もうこの問題について考える必要はありません。「設定 → 写真 → MacまたはPCに転送 → 自動」もあります。こちらはケーブルで取り出す際に変換します。

入力

IMG_4021.HEIC — 2.1 MB
4032 x 3024, portrait
ftyp brand: heic

出力

IMG_4021.jpg — 1.4 MB
3024 x 4032 (rotation applied)
EXIF and GPS not carried over

HEICをJPGに変換が対応するオプションとエッジケースは?

技術リファレンスとオプション
パラメータ型デフォルト動作とエッジケース
JPG出力デフォルト30年前に書かれたソフトウェアを含む、すべての場所で開けます。誰かに送る必要のある写真に最適な選択です。
PNG出力—非圧縮で、写真の場合はJPGの数倍のサイズになります。画像をさらに編集する場合のみ、その価値があります。
WebP出力—同じ品質でJPGより小さく、すべての現在のブラウザでサポートされます——しかし、すべてのデスクトップアプリケーションではサポートされていません。
品質0.1 – 1.00.85JPGとWebPに適用されます。0.85はHEICと視覚的に区別できません。
最大幅ピクセルなし任意。iPhoneの写真は4032ピクセル幅で、これはほとんどの送信先が必要とするものより大きいです。
デコーダーlibheif (WASM)—約2MBで、ブラウザがファイルを拒否した後にのみ読み込まれます。Safariでは必要ありません。
向き適用—回転はピクセルに焼き付けられるため、出力はどこでも縦向きになります。
EXIF / GPS削除—ピクセルからの再エンコードでは、メタデータは引き継がれません。

よくある質問

WindowsやChromeでiPhoneの写真が開けないのはなぜですか?

HEICはH.265という映像コーデックのHEVCを包んだ形式で、HEVCデコーダーは特許ライセンスの対象です。AppleはOS全体についてHEVCのライセンスを得ているため、SafariとmacOSはHEICをネイティブに開けます。ChromeとFirefoxはデコーダーを搭載しない選択をしており、古いWindowsではMicrosoft Storeの有料コーデックパックが必要です。ファイルに問題があるわけではありません。この形式は単に、自由には実装できないだけです。

Chromeにできないのに、このページはどうやってHEICを変換するのですか?

独自のデコーダーを持ってくるからです。オープンソースのリファレンス実装libheifをWebAssemblyにコンパイルし、タブの中で実行します。サイズは約2メガバイトあるため、ブラウザがファイルの処理を断った後でのみダウンロードされます。JPEGを変換する人はこれを一切ダウンロードしませんし、Safariユーザーにはそもそも不要です。読み込み後は生のピクセルへデコードし、そこから先はブラウザ内蔵のJPEGエンコーダーが引き継ぎます。

写真はアップロードされますか?

いいえ。そしてこのツールでは、他の多くのツール以上にそれが重要です。HEICファイルはカメラロールの写真で、たいてい撮影場所のGPS座標を含んでいます。アップロードを求めるコンバーターは、まさにそれを求めているのです。ここではすべてがブラウザ内で起こります。変換中にNetworkパネルを監視できます。出るリクエストはデコーダー本体だけで、写真データはマシンの外に出ません。このページはconnect-src 'self'付きで配信されているため、アップロードはブラウザがブロックします。

変換した写真の画質は落ちますか?

少しだけ落ちます。避けられません。HEICはすでに非可逆圧縮で、JPEGへの再エンコードは2回目の非可逆処理です。quality 0.85なら写真で違いは見えません。見つけるにはピクセル値の比較が必要です。それでもJPEGのほうがHEICより大きくなるのが普通です。HEICのほうが本当に効率の良い形式だからです。2回目の劣化を一切受けたくないならPNGを選び、かなり大きなファイルを受け入れてください。

フォルダごとまとめて変換できますか?

はい。合計100ファイル・250 MBまでなら、いくつでも選択・ドロップできます。変換は同時ではなく1件ずつ行われ、メモリ使用量は常に1枚分に抑えられます。1200万像素の画像を12枚並行してデコードするのが、スマホのブラウザを殺す犯人です。デコーダーはバッチ全体で1回だけ読み込まれます。

出力のJPEGに位置情報は残りますか?

残りません。変換では生のピクセルへデコードし、そこからエンコードするため、GPS座標、カメラの機種、タイムスタンプを含むEXIFメタデータは引き継がれません。唯一保たれるのは向きで、しかも適用して保ちます。回転がピクセルに焼き込まれるため、写真は正立します。削除されたタグに頼ることはありません。

iPhoneにHEICファイルを作らせないようにするには?

「設定 → カメラ → フォーマット → 互換性の高い形式」にします。カメラがJPEGを直接保存するようになり、写真1枚あたりの保存容量はおよそ2倍になるものの、この問題とは二度と無縁になります。「設定 → 写真 → MacまたはPCに転送 → 自動」もあります。こちらはケーブルでコピーする際に写真を変換し、iPhone上の元ファイルはHEICのまま残ります。

HEICをJPGに変換でできるそのほかのことは?