abox.tools

言語: 日本語

スマホが保存した写真と、何も開けてくれない形式

iPhoneは写真をHEICで保存します。JPEGより小さくて優れているのに、いまだに多くのソフトが開くのを拒む形式です。ここでは、この形式が実際に何であるか、変換が画像に何を強いるのか、そしてなぜほとんどの変換サイトが、まずアップロードさせたがるのかを説明します。

HEIC→JPG変換ツールを開く iPhoneが作る写真を、どこでも開ける形式に。

Markdownで表示

短い答え

HEICをJPGに変換するツールを開いて写真を入れ、「変換」を押します。理由がなければ、画質のスライダーはそのまま、「撮影日時、カメラ、設定を残す」もチェックを入れたままにしてください。JPEGが返ってきて、1枚ずつダウンロードボタンが付き、複数ならzipも出ます。

その間、何もアップロードされません。この仕事に関してはそれが珍しいことで、その理由こそが、このページの面白いほうの半分です。

オプションのカード。形式のメニューはJPEG、品質のつまみは85、そして元ファイルの日付・カメラ・場所を残すかどうかのスイッチ。
変換のすべてはこの三つです。立ち止まる価値があるのはメタデータのスイッチで、その理由は下の節にあります。

HEICとは実際何なのか

HEICは、JPEGがそうであるような意味での画像形式ではありません。MP4が組み立てられているのと同じ箱の構造を持つ入れ物であり、その中にHEVC動画の静止フレームが入っています。H.265とも呼ばれるHEVCは、昔のビデオカメラが使っていたコーデックを置き換えたもので、非常に優れています。HEICのiPhone写真は、同じ画質のJPEGのおよそ半分の大きさです。

Appleは2017年のiOS 11でこれに切り替え、既定にしました。つまり、設定を開いて「互換性優先」を選んでいない限り、その人のスマホがこの10年近くに撮ったすべての写真は、次のような形式で保存されているということです。

写真自体に問題はありません。JPEGだった場合より、優れたファイルです。ただ、世界のほとんどが習わなかった言語で書かれているだけです。

Safariだけが開ける理由

これは、これまで使ったすべての変換サイトを説明する部分なので、1段落を割く価値があります。

HEVCのデコードにはHEVCのデコーダーが必要で、HEVCには特許があります。ライセンスは複数のパテントプールが管理しており、デコーダーを配るとは、誰かに支払うということです。ブラウザはこれを、OSに寄りかかることで処理しています。Chromeは、ハードウェアがすでにライセンス済みのデコーダーを持つ端末でなら、HEVCの動画を再生します。ですがその経路は動画再生のために配線されていて、静止画のためではありません。ですから<img>に渡されたHEICは、ChromeでもFirefoxでもEdgeでも、どのOSでも拒否されます。

Appleのハードウェア上のSafariが例外なのは、macOSとiOSがデコーダーを持っていて、Safariがそれに頼むことを許されているからです。それ以外の場所では、その画像はブラウザにとって、単純にデコード不可能です。

すると変換ツールに残る選択肢はちょうど2つで、そのどちらを選ぶかが、この種の道具の物語のすべてです。

ほとんどのHEIC変換サイトがアップロードを求める理由

選択肢その1、デコーダーをサーバーに置く。写真はアップロードされ、見たこともない機械の上でデコードされ、JPEGとして書き直され、送り返されます。「無料オンラインHEIC変換」のほぼすべてがこれをしており、だからどこもファイルを必要とします。怠慢ではありません。ブラウザは本当に、助けなしにはそれができないのです。

その代償は、はっきり言っておく価値があります。スマホの写真は、たいていの人が持つ最も個人的なファイルです。iPhoneから出したばかりのHEICはたいてい、数メートルの精度で撮影地の座標を、秒単位の日時とカメラの識別子とともに抱えています。そのフォルダを無料サービスにアップロードするとは、写真とその両方を差し出すということです。そのあと何が起きるかを定めているのは、読んでいないプライバシーポリシーであり、場所は調べようのないサーバー、国は自分で選んでいない管轄です。

選択肢その2、デコーダーをページに置く。こちらの道具がしているのは、それです。WebAssemblyにコンパイルしたlibheifを、このサイトから配信されるファイルとして抱えています。約1.4MB、一度ダウンロードされてキャッシュされます。それをお使いのブラウザが、手元の端末で、手元のハードウェア上で走らせますし、写真はどこへも行きません。ページを一度読み込めば、インターネットから完全に抜いてもそのまま動きます。アップロードする変換サイトにはどうやってもできないことであり、これ以上ないほど単純な証明です。

1.4MBが、その代金のすべてです。従量制の回線をお使いなら、それは実際の費用であり、知っておく価値があります。だからこのページは、黙ってダウンロードするのではなく、そう書いています。

変換が画像に強いる代償

HEICとJPEGは別のコーデックなので、画像をデコードして書き直さずに渡る道はありません。その2度目のエンコードは非可逆です。実際には、これは聞こえるほど問題になりません。

まったく劣化させたくないなら、形式のメニューにPNGがあります。ファイルの大きさは覚悟してください。PNGにした写真は、JPEGの5倍から10倍になるのがふつうです。PNGの圧縮は、草や肌ではなく、平坦な色と線画のために設計されているからです。

撮影日時、カメラ、そして座標

HEIC変換サイトへの不満としてよくあるのは、写真が撮影日を失って返ってくることです。旅行1回分の写真が、今日の日付でライブラリの末尾に並んでしまいます。それが起きるのは、キャンバスを経由した変換では、手に入るのがピクセルだけだからです。キャンバスはタグを持ちません。ですから変換ツールがメタデータを別途取りに行かない限り、それは単純に消えます。

ここの道具はEXIFブロックをHEICから取り出してJPEGに書き込むので、日付は残ります。チェックボックスがあり、既定で入っています。外せば、JPEGには画像だけが入り、ほかは何も入りません。

決める前に、一覧を見てください。各写真の行には、そのファイルがGPS座標を抱えているかどうかが、何かが変換される前の段階で表示されます。写真が公開の場所へ行くなら、読むべきはその行です。自分のライブラリへ行くなら、メタデータを残すのが、ほぼ確実に求めているものです。

どちらを選んでもタグがひとつ変わるので、その理由を知っておく価値があります。HEICは回転を2か所に記録します。入れ物の中と、EXIFブロックの中です。デコーダーはデコードしながら入れ物のほうの回転を適用するので、渡されるピクセルはすでに正しい向きになっています。もしEXIFがまだ「90度回せ」と言っていたら、ビューアーがもう一度回してしまい、縦向きの写真がすべて横倒しになります。ですから向きのタグは正立に設定し、それ以外はスマホが書いたとおりに正確に複製します。

タグを細かく見たいときや、すでにJPEGになっている写真から消したいときは、それは別の仕事で、そのためのガイドがあります。

人がつまずくところ

変換ツールがアップロードしているかを見分ける方法

これはこの道具に限らず、どの道具にも当てはまりますし、15秒ほどで済みます。

  1. ページを開き、ブラウザの開発者ツール(DevTools)を開いて「ネットワーク」タブへ行きます。
  2. 写真を変換して、見ていてください。手元の端末でデコードする道具は、その瞬間にリクエストをまったく出しません。アップロードする道具は、写真の大きさのリクエストを1つ出しますし、その大きさは目に見えます。
  3. あるいはもっと単純に、ページを読み込み、通信を切ってから、何かを変換してみてください。デコードのために写真をどこかへ送っていた道具は止まります。デコーダーを抱えている道具は、止まりません。

ここの変換ツールは、その両方を通るように作られています。この議論のもっと長い版はファイルをアップロードしても安全かにあります。