Step 3: Core Technology

iPhoneのHEIC画像が
ブラウザで表示できない問題

iPhoneで撮った写真が読み込めない…。開発終盤に立ちはだかった「HEICの壁」を乗り越えた話です。

まさかの「画像が表示されない」

開発がほぼ終わった頃、自分のiPhoneからアップロードを試すと画像が全く表示されませんでした。調べてみると、iPhoneの写真は HEIC という独自形式で保存されており、ほとんどのブラウザはこれを直接表示することができないのです。

WebAssembly という技術の助け

「サーバーに送らずに解決する」というルールを崩したくなかった私は、heic2any というライブラリに辿り着きました。これはブラウザの強力な計算機能(WebAssembly)を使い、ブラウザ内で無理やりHEICをJPEGに変換する凄いやつです。

// HEIC形式ならJPEGに変換する処理を挟む
if (file.type === "image/heic") {
    const converted = await heic2any({ blob: file, toType: "image/jpeg" });
}

変換には少し時間がかかるので、ローディング画面などの工夫が必要でしたが、これで「iPhoneユーザーも安心して使える」ツールになりました。技術の進化と、先人たちが残してくれたライブラリに感謝した瞬間です。