Base64エンコードとは?画像をコードに変換すべき理由
画像ファイルをテキスト文字列に変換するBase64エンコードの概念と、フロントエンド開発における実務での活用法について解説します。
フロントエンド開発を行ったり、ウェブページのソースコードを開いてみたりした時、画像タグのsrc属性にdata:image/png;base64,iVBORw0KGgo...のような謎のテキストが延々と並んでいるのを見たことがありますか?
これがまさに、画像ファイルをテキスト文字列に変換するBase64エンコード(Data URI)という技術です。なぜ普通の画像をテキストに変換するのか、そしていつ使用すべきなのかを明確に解説します。
Base64エンコードとは?
Base64は、コンピュータが処理するバイナリデータ(Binary Data)を、A-Z、a-z、0-9、そして+、/の記号を含む64種類の出力可能な文字のみを使用してエンコード(変換)する方式です。これにより、画像、オーディオ、フォントなどのバイナリファイルを純粋なテキスト形式として扱うことができるようになります。
なぜ画像をテキストに変換するのか?
1. 追加のHTTPリクエストの削減
ウェブページに小さなアイコンが10個ある場合、ブラウザはこれら10個のアイコンを読み込むためにサーバーに10回の個別のリクエスト(HTTP Request)を送信しなければなりません。しかし、画像をBase64コードに変換し、HTMLやCSSファイル内に直接埋め込む(Data URI scheme)ことで、ファイルを読み込むリクエストを完全に無くすことができ、ウェブページの読み込み速度の最適化に役立ちます。
2. 外部リソースへの依存性を排除
オフライン環境で動作させる必要のあるローカルHTMLドキュメントを作成したり、メールマガジンを配信したりする際、外部サーバーにある画像がブロックされて画像が非表示になる現象を防ぐことができます。画像がドキュメント自体にテキストとして含まれているからです。
Base64変換のデメリットと注意点
メリットだけではありません。バイナリデータをBase64にエンコードすると、元のファイル容量よりも約33%大きくなります。
したがって、数MBに達する高画質の写真をBase64に変換して埋め込むと、HTMLドキュメントとキャッシュの負荷が増え、パースやレンダリングが遅くなることがあります。小さなアイコンやロゴなどの軽量画像にのみ選択的に使用するのが、フロントエンド最適化の定石です。
ウェブツールで1秒でBase64に変換する
開発中にアイコンをBase64コードに変換したい場合は、AllThatConverterの画像 ↔ Base64 変換を使ってみてください。変換はブラウザ内だけで行われ、ファイルがサーバーに送信されることはありません。2つのモードを提供しています。
- 画像 → Base64エンコード: 画像をドラッグ&ドロップでアップロードすると、ファイル名・サイズ・フォーマット情報が表示され、HTMLやCSSにすぐ貼り付けられるData URIコードが生成されます。
- Base64 → 画像デコード: Base64テキストを貼り付けると画像をすぐにプレビューでき、クリップボードにコピーしたり元の画像ファイルとしてダウンロードしたりできます。
画像 ↔ Base64 変換
画像ファイルをBase64コードに変換したり、Base64コードを再び画像に復元します。サーバー送信なしでブラウザ内で処理されます。