# HEIC→JPG変換｜iPhoneの写真を変換

iPhoneが作る写真を、どこでも開ける形式に。

> iPhoneのHEICとAVIF写真をブラウザの中でJPGに変換します。デコーダーが動くのは手元の端末です。アップロードなし、登録なし、オフラインでも動作。撮影日時やカメラ情報も引き継げます。 メタデータのチェックボックスとプレビューはHEICだけに適用されます。AVIFのメタデータは常に除外します。

これはhttps://abox.tools/ja/heic-to-jpg/にあるブラウザー用の対話型ツールです。ファイルはそのブラウザーを実行する端末上で処理します。意図した共有や任意の通信機能はページ内で説明します。以下は文章による説明です。利用するにはアドレスを開いてください。

## 写真は**ブラウザー内で処理**されます。処理のためのアップロードはありません。

デコードを行うのは、お使いのブラウザと手元のハードウェアです。HEICはブラウザが単体では開けない唯一の画像形式なので、このページはデコーダーを抱えたまま配信されます。約1.4MB、このサイトから届き、初回以降はキャッシュされます。ほかのHEIC変換サイトがどこもアップロードを求めるのは、まさにここが理由です。コーデックをサーバーに置いているので、写真のほうがそこへ行かなければなりません。こちらは代わりに、コーデックをここへ置きました。このページにネットワーク機能は一切なく、向こう側に写真を送るサーバーもありません。

- ✗ アップロードなし
- ✗ 登録なし
- ✗ 容量制限なし
- ✓ オフラインで動作
- ✓ ソース公開

## HEIC写真をJPGに変換する手順

1. **HEICとAVIF写真を選びます。** 選択欄にドロップするか、手で選んでください。スマホのバックアップからでも、デスクトップのフォルダからでも構いません。ブラウザがディスクから読み出します。その間に何かがどこかへ送られることはありません。一覧には、それぞれが何であり、中に何が入っているのかが表示されます。
2. **写真が何を抱えているのかを確かめます。** 各行に、撮影日、カメラ、そしてGPS座標が入っているかどうかが表示されます。座標だけ緑色なのは、そこがいちばん気にとめる価値のある部分だからです。これは画像をデコードせずに入れ物から読み出すので、負荷がなく、すぐに表示されます。
3. **形式を選び、付随情報をどうするかを決めます。** 理由がなければJPEGです。どこでも開ける形式であり、それこそが変換する目的だからです。画質のスライダーは92になっています。写真であれば元と見分けにくい設定です。チェックボックスで、撮影日時、カメラ、位置情報を引き継ぐかどうかを決めます。
4. **「変換」を押して、ダウンロードします。** デコーダーは最初の変換時に届きます。約1.4MB、一度だけです。それ以降はどの写真も、手元の端末でデコードして書き出します。1枚ならダウンロードボタンが、複数ならzipも出ます。

## 詳しい解説

[スマホが保存した写真と、何も開けてくれない形式](https://abox.tools/ja/guides/convert-heic-to-jpg/): iPhoneは写真をHEICで保存し、インターネットの半分はそれを開けません。この形式が何であるか、Safariだけがデコードできる理由、変換が画像に何を強いるのか、そして誰にもアップロードせずにそれを行う方法。

## 箱の中のほかのツール

- [WebPをJPGに](https://abox.tools/ja/webp-to-jpg/): ウェブから保存した画像を、どこでも使える形式へ。
- [PNGをWebPに](https://abox.tools/ja/png-to-webp/): 同じ画像を、透明な部分はそのまま、多くの場合3分の1ほど小さく。
- [AVIFをJPGに](https://abox.tools/ja/avif-to-jpg/): ウェブサイトが保存する形式から、どこでも使える形式へ。
- [証明写真作成](https://abox.tools/ja/id-photo/): 対応する国と書類を選択。公表された条件と目安を区別して表示します。

## よくある質問

### 写真はどこかにアップロードされますか？

されません。読み込みもデコードも書き出しも、お使いのブラウザが手元のハードウェア上で行います。このツールにはネットワーク機能が一切なく、何も取りに行かず、何も送りません。ページの`Content-Security-Policy`には接続してよいアドレスがすべて挙がっていますが、そのどれも当サイトのものではありません。唯一読み込まれるのはデコーダーそのもので、それはこのサイトから、一度だけ、写真が関わる前に届きます。

### 初回に1.4MBもダウンロードされるのはなぜですか？

HEICが、ブラウザの開けない唯一の画像形式だからです。箱形の入れ物に入ったHEVCのフレームで、デコーダーを持っているのはAppleのハードウェア上のSafariだけです。ChromeもFirefoxもEdgeも、そのファイルをただ断ります。ですからHEICの変換にはどこかからデコーダーが要り、置き場所は2つしかありません。サーバーか、ページかです。ほかの変換サイトはすべてサーバーを選びました。だからどこも、写真をアップロードさせる必要があるのです。こちらは代わりに、WebAssemblyにコンパイルした`libheif`を抱えています。このサイトから配信され、初回以降はキャッシュされます。これが、写真がどこにも行かないことの代金のすべてです。

### JPEGに撮影日時、カメラ、位置情報は残りますか？

残したければ残ります。ページ上のチェックボックスです。有効なままなら、EXIFブロックがHEICから取り出され、スマホが書いたとおりにJPEGへ書き込まれます。ですから変換後の写真も、変換した日ではなく撮影した日で並びます。HEIC変換ツールへの不満として、いちばんよく聞くのがこれです。変わるタグはひとつだけ、向きです。「正立」に設定されます。回転はすでにピクセルに適用されているので、ビューアーがもう一度適用すると、縦向きの写真がすべて横倒しになってしまうからです。チェックを外すと、JPEGには画像だけが入り、ほかは何も入りません。

### GPS座標は削除されますか？

入っていることをまず知らせ、そのうえで指示どおりにします。各写真の行には、何かを変換する前の段階で、そのファイルが座標を抱えているかどうかが表示されます。スマホがしてくれる以上のことです。「撮影日時、カメラ、設定を残す」のチェックを外せば、ほかのすべてと一緒にJPEGから外れます。入れたままなら引き継がれます。タグを細かく見たいときや、すでにJPEGになっている写真から消したいときは、[EXIFビューアー・削除ツール](https://abox.tools/ja/exif-editor/)がその役目を担い、しかも画像を再圧縮せずに行います。

### 画像は再圧縮されますか？

されますし、そうするしかありません。HEICとJPEGは別のコーデックなので、画像をデコードして書き直さずに一方から他方へ移る方法がありません。決められるのは、その代償の大きさです。画質のスライダーは既定で92で、写真であれば元との区別が非常に難しい値です。まったく劣化させたくなく、ファイルが5倍から10倍になっても構わない場合のために、PNGも選べるようにしてあります。

### 拡張子が.jpgでも中身がHEICの場合は？

それでも動きます。ここに入れたファイルは、名前ではなく先頭のバイト列で判別します。名前は、そのファイルに最後に触れたアプリが決めたものにすぎません。そして「.jpg」という名前で届いたHEICは、こういう道具を探しに来る理由としてもっとも多いもののひとつです。本当にJPEGやPNGであるファイルは、自分自身の複製に変換されるのではなく、その旨のメッセージを出して断ります。

### Live Photoやバースト撮影も変換できますか？

中の静止画は変換できます。1つのHEICは複数の画像を抱えられ、抱えているものはすべて変換して、元の名前に連番を付けて保存します。Live Photoの動画のほうは、スマホがHEICの隣に置いている別ファイルなので、ここには入っておらず、変換の対象にもなりません。深度マップとサムネイルは入れ物の中にありますが、誰かが求めた画像ではないので、手をつけません。

### AVIF画像も変換できますか？

AVIFはブラウザのデコーダーを使い、HEICエンジンを読み込みません。出力はJPEG、PNG、WebPのままです。最初にデコードされた画像だけを書き出し、色やHDRが変わる場合があります。AVIFのメタデータは常に除外します。メタデータのチェックボックスはHEICだけに適用されます。元のファイルは変わりません。

### 無料ですか。アカウントは必要ですか？

無料です。アカウントも、ログインも、試用期間も、透かしもありません。ファイルの数にもサイズにも制限はありません。その費用を払うサーバーが存在せず、処理が手元の端末で起きているからです。このサイトには広告があり、それが費用を賄っています。広告に写真の情報が渡されることはありません。

### オフラインでも動きますか？

デコーダーごと動きます。ページを一度読み込んでから通信を切っても、写真の処理はそれまでとまったく同じように続きます。何もアップロードされていないことを示す、手に入るかぎり最も強い証明でもあります。デコードのためにHEICをどこかへ送っている変換ツールなら線を抜いた瞬間に止まりますが、これは止まりません。

## この主張を確かめる方法

- **処理はこのブラウザー内で行います。** 入力と結果はブラウザー内で処理し、処理コードはそれらを処理用にアップロードしません。Content-Security-Policyは資源と接続先を制限しますが、許可済みの相手はリクエストを受け取れます。内容は検査せず、何も送られないことを単独で証明しません。具体的な操作の要求とソースを比較するか、切断中にローカル操作を完了してください。
- **デコーダーはここから来て、どこへも行きません。** HEICとは箱形式に入ったHEVCで、Safari以外のブラウザはこれをデコードしません。そこでこのページは、WebAssemblyにコンパイルした`libheif`を配ります。約1.4MB、このリポジトリに登録され、このオリジンから配信され、ほかのファイルと同じくサービスワーカーがキャッシュします。CDNから取りに行くことはしません。それでは訪問のたびに第三者が経路に入り、オフラインで動かなくなるからです。バイナリを別ファイルにせずスクリプトの中に入れてあるのも、起動に通信を必要としないためです。
- **何かを取りに行くコードがありません。** このツールのために書かれたファイルのどこにも`fetch`も`XMLHttpRequest`も`sendBeacon`もありません。同梱のエンジンには、Emscriptenのビルドがどれもそうであるように、URLから`.wasm`を取りに行く読み込み経路が含まれています。それは通りません。バイナリがすでに手元にあるからです。仮に通ったとしても、`connect-src`はGoogleの計測用エンドポイントしか挙げていないので、ブラウザが拒みます。証拠になるのは約束ではなくポリシーのほうです。
- **メタデータはここで読み、ここで表示します。** ページ上の一覧は、各写真が何を抱えているのかを示します。撮影日時、カメラ、そしてGPS座標が入っているかどうか。そのJPEGを誰かに渡す前に知っておきたいことだからです。これはこのブラウザの中で`src/boxes.js`がファイルから読み出し、このページに表示し、選択に従ってJPEGに書き込むか外すかします。ファイル名も、日付も、座標も、件数も運ぶような独自の解析イベントは、このリポジトリのどこにもありません。
- **Googleが読み込むものと、渡されないもの。** 広告と計測のスクリプトはGoogleから、寄付ボタンはBuy Me a Coffeeから来ています。そのどれにも、写真に関する情報は渡されません。ファイルを読み、デコードし、書き出すコードはすべてこのオリジンから配信され、リポジトリに載っています。
- **オフラインで動きます。** ページを一度読み込んでから通信を切っても、このツールは何も変わりません。デコーダーも一緒にキャッシュされているからです。これがいちばん単純な証明であり、このサイトのどのページよりも強い証明です。デコードのために写真をどこかへ送っている変換ツールに、これはどうやってもできません。

**自分で確かめてください。**以上のどれも、鵜呑みにする必要はありません。このページは、リポジトリにあるテンプレートと設定から、誰でも読んで実行できるビルドスクリプトが生成しています。その結果は`dist`ブランチに置いてあるので、配信されているものと、ソースをビルドした結果とを差分で比べられます。 https://github.com/A-Box-of-Tools/website

まず読むとよいのは、Content-Security-Policyについては`config/site.toml`、デコーダーがどう読み込まれ何を許されているかについては`src/heif.js`、写真のメタデータを見つけ出す入れ物の解析については`src/boxes.js`、そのメタデータがJPEGへ入る途中で何をされるかについては`src/exif.js`です。エンジン本体は`vendor/libheif.js`で、無改変のまま、ライセンスを添えて置いてあります。
