チュートリアル

HEIC to WebP:Web 開発者向けのモダンフォーマット

koboshiCo-founder
·2 分で読めます
要約

WebP は HEIC の互換性の問題なしにモダンな圧縮を提供し、対応ブラウザは長年ほぼすべてです。このガイドでは、Web 向けに HEIC を WebP へ変換する方法、サイズ比較の実際、パイプラインへの組み込み方を紹介します。

ユーザーが iPhone で撮った写真をアップロードする。ファイルは HEIC で、約 1.8 MB。<img> タグはこれに依存できない。HEIC は Chrome、Firefox、Edge でネイティブ対応していないからだ。そこで画像は 3.4 MB の JPG になるか、目に見える差がない約 1.2 MB の WebP になるか、どちらかになる。この差こそ、HEIC で届く写真に WebP が答えとなる理由だ。

このガイドでは、HEIC を WebP に変換する方法、フォーマット間のサイズ比較の実際、ブラウザツールからビルドに組み込めるシェルコマンドまで、選択肢を解説する。

なぜ HEIC ではなく WebP か

HEIC は写真の保存に優れており、同等品質の JPEG のおおよそ半分のサイズになる。だが、配信フォーマットとしては Web の役に立たない。Chrome、Firefox、Edge、Safari はすべて何年も前から WebP に対応している。一方、HEIC に対応しているのは Safari と一部のベンダー固有の環境だけだ。ユーザーがアップロードした画像に HEIC を当てにすることはできない。変換パイプラインが存在するのは、まさにそのためだ。

WebP は HEIC と同じ領域をカバーする。モダンな圧縮技術を土台にした非可逆フォーマットで、可逆モードとアルファ透明度も備える。写真の場合、同じ見た目の品質で WebP と JPG を比べると、WebP はおおよそ 25 〜 35% 小さくなる。画像の多いページでは、これは無視できない節約だ。

サイズ比較

同じ 12 MP の写真、同じ見た目の品質:

フォーマットサイズ対応ブラウザ備考
HEIC~1.8 MBSafari のみiPhone の元フォーマット
JPG~3.4 MBすべて基準
WebP~1.2 MBすべて非可逆、アルファ対応
PNG~24 MBすべて可逆、写真向けではない

WebP が JPG や PNG に対してどの位置にいるのか、背景を知りたい場合はWeb 画像フォーマットガイドに完全な比較が載っている。

方法 1:ブラウザで変換する

最も簡単なのは、デバイス上だけで完結するツールだ。HEIC to WebP コンバーターは WebAssembly で HEIC をローカルでデコードし、WebP ファイルを書き出すので、写真がマシンの外に出ることはない。品質を設定し、フォルダ全体を変換し、結果を ZIP でダウンロードできる。一度きりの変換や、コマンドラインに慣れていないデザイナーや編集者に向いている。

方法 2:コマンドラインで変換する

パイプラインなら、定番の組み合わせは libheiflibwebp だ。macOS で Homebrew を使う場合:

brew install libheif webp

その後、heif-convertcwebp で変換する:

heif-convert input.heic output.png
cwebp -q 82 output.png -o output.webp

または ffmpeg で中間ファイルを省く:

ffmpeg -i input.heic -c:v libwebp -quality 82 output.webp

どちらのコマンドも品質引数に対応している。cwebp は最も幅広い制御オプションを持ち、可逆モードや、最も遅くて最も小さな出力になる -m 6 を備える。フォルダ単位ならループで処理する:

for f in *.heic; do heif-convert "$f" "${f%.heic}.png"; cwebp -q 82 "${f%.heic}.png" -o "${f%.heic}.webp"; done

これで、サーバー側でアップロードを処理するシェルスクリプトや CI ジョブに組み込める。

WebP で品質とフォーマットを選ぶ

出力に最も影響するのは次の 2 つの判断だ:

  • 非可逆か可逆か。 cwebp -lossless か、可逆フラグ付きの -q 100 は全ピクセルを保持するが、ファイルは大きくなる。スクリーンショット、ロゴ、平坦な色とテキストで構成されるものに使おう。写真には非可逆を使う。
  • 品質の数値。 -q 82 は写真の適切なデフォルトだ。見た目はきれいで、JPG よりずっと小さい。高品質が目的なら、-q 90 はバイト数は増えるが、ソースに近づく。これは JPG の品質設定と同じトレードオフで、品質を落とさない HEIC to JPG 変換が詳しく解説している。

WebP はアルファも扱える。透明度チャンネルを持つ HEIC 画像は変換を乗り切れる。JPG なら落とされてしまう情報だ。

新しいフォーマットについて

AV1 ベースの後継である AVIF は、サイズの点で一般的に WebP を上回り、現在は主要ブラウザすべてでサポートされている。新しいパイプラインを組んでいて、デコーダーを自由に選べるなら、AVIF を WebP と比較して自分の画像で試す価値はある。トレードオフはエンコード速度とツールの成熟度だ。だから WebP がほとんどのチームで安全なデフォルトであり続ける。Web 画像フォーマットガイドには、各フォーマットの適材適所がさらに詳しく載っている。

まとめ

Web サイトに載せるものは、HEIC を WebP に変換しよう。どこでも対応しており、同じ品質の JPG より小さく、ブラウザツールか 2 コマンドのシェルパイプラインで変換できる。元の HEIC を原本として保管し、アップロード時かバッチジョブで変換し、読み込み時間の計算はフォーマットに任せよう。

その他のおすすめ記事