要点
これはHEIC(およびHEIF)写真を、すべて端末内で動作して表示するビューアです。 ファイルをドロップすると、ツールはブラウザ自身のデコーダに描画を依頼し、 写真を実際のピクセル寸法とともに表示します。動くかどうかを左右する唯一の点に ついても正直です — HEIC写真はHEVCで符号化されており、すべてのブラウザが HEVCをデコードできるわけではありません。デコードできる環境なら写真が見え、 できない環境では、はっきりした説明と、見られる別の手段を示します。偽物の プレビューは決して出しません。何もアップロードされず、ファイルが単に デコードできないのではなく壊れている場合は、ビューアが修復へと案内します。
HEICとは実際に何なのか
HEICはiOS 11以降、Appleの標準写真形式です。中身の画像はHEVCで符号化された画像 — H.265動画の静止画版 — で、 MP4と同じボックス構造のISOベースメディアコンテナに収められています。 だからHEICは、同等品質のJPGのおよそ半分のサイズになります。HEVCは、 JPEGの数十年前のアルゴリズムよりもはるかに効率よく圧縮するからです。 問題はデコードの対応状況です。HEVCは特許に縛られているため、多くの ブラウザやOSはデコーダを含んでいません。JPGはどこでも描画されますが、 HEICはHEVCをデコードできる何かがある環境でしか描画されません。
このビューアは正直な道を選びます — ファイルをブラウザのネイティブなcreateImageBitmap デコーダ(<img>タグが使うのと同じ経路)に 渡し、そのデコーダが実際にピクセルを返したときだけ画像を表示します。 描画を偽装するためのHEVCデコーダを同梱してはいません — あなたが目にするのは、 本物の写真か、なぜ表示できないかの素直な説明のどちらかです。
描画できる環境と、できない環境
ここで描画されます
- macOSとiOSのSafari — HEVCデコードが標準で組み込まれています
- iPhoneとiPadのブラウザ — 写真はネイティブにデコードされます
- 「HEVCビデオ拡張機能」コーデックを入れたWindows — ChromeとEdgeがデコードできるようになります
正直にフォールバックします
- コーデック無しのWindowsやLinux上の多くのChrome・Firefox — HEVCデコーダが無いため、プレビューは表示されません
- 空の枠を見せる代わりに、素直なメッセージを表示し、デコードできる端末へ案内します
- 構造スキャンで本当の破損が見つかった場合は、まずHEICの修復へ案内します
ブラウザがHEVCをデコードできない場合、最も確実な対処は、写真を撮った 端末で見ることです — iPhoneやiPadならネイティブに表示でき、JPEGとして 書き出せます — あるいはこのページをMacのSafariで開き直すことです。
「アップロードなし」が、スローガンではなく検証できる理由
多くのオンラインHEICビューアは、あなたの写真をサーバーにアップロードし、 そこでデコードして、JPEGのプレビューを送り返します — つまりあなたの プライベートな写真は、ただ見られるためだけに端末から出ていくのです。 このツールは違います。ファイルはブラウザのファイルAPIで読み取られ、 あなたのマシン上でデコードされます。ページはあなたのバイト列を運ぶ リクエストを一切行いません。鵜呑みにする必要はありません — 開発者ツールを 開いてネットワークタブを選び、ファイルをドロップして、何も出ていかない ことを見届けてください。IntactFileの他のツールと同じアップロードゼロの 原則を、表示に適用したものです。
空のプレビューか、それとも壊れたファイルか?
HEICが表示されない理由は、大きく2つに分かれます。よくあるのはコーデックの欠如です — 写真は完全に健全でiPhoneでは 開けるのに、ブラウザにHEVCデコーダが無いだけの状態です。もう1つは本当の破損です — 途中で切れたAirDropやUSB取り込み、中断された iCloud同期、ファイルの境界を読み違えた復旧ツールなどが、コンテナを壊して どのビューアでも画像に辿り着けなくします。ビューアはこの2つを見分けます — 構造スキャンを実行し、本当の破損が見つかったら処理を止めて、まずHEICコンテナの修復へ案内します。修復は オフセット表を再アンカーし、生き残ったタイルを救出します。画像データに 再び辿り着けるようになって初めて、どのビューアでもそれを表示できます。 持ち運べるコピーを手にして立ち去りたい場合は、HEIC → JPG変換が同じ仕組みで動き、 ダウンロードを追加します。