Base64とは

Base64は、画像を構成するバイト列のようなバイナリデータを、プレーンテキストの文字列に変換する符号化方式です。名前の由来は、64種類の文字(大文字、小文字、数字、 +/)だけであらゆるデータを表現するところにあります。

つまり、どんな画像ファイルでも次のような長いテキストに変換できるということです。

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA AAAFCAYAAACNbyblAAAAHElEQVQI12P4 BCVMAAAAJRQAAAAElFTkSuQmCC

この形式は データURI (データURL)と呼ばれます。外部ファイルを指し示す代わりに、URL自体がテキスト化された画像の中身を運びます。ブラウザはこの文字列を読み取り、追加のHTTPリクエストなしでそのまま画像として表示します。

データURIの構造

画像のデータURIは、いずれも同じ形をしています。

data:[MIMEタイプ];base64,[エンコードされたデータ]

各部分の意味は次のとおりです。

ここで押さえておきたいのは、Base64にすると データ量がおよそ33%増えるという点です。3 KBの画像は約4 KBの文字列になります。同じバイト数を表すのに、より多くの文字が必要になるためです。

HTMLでのBase64の使い方

HTMLでBase64画像をそのまま表示するには、データURIを src 属性に指定します。使うタグは通常どおり <img>

<img src="data:image/png;base64,iVBORw0KGgo..." alt="アイコン">

ブラウザはこの要素を通常の画像とまったく同じように扱います。CSSを当てたり、幅や高さを指定したり、 <img> が使える場所ならどこでも利用できます。

CSSでのBase64の使い方

CSSでは、データURIは主に背景画像の指定に使われます。

.icon { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucy..."); width: 24px; height: 24px; background-size: contain; background-repeat: no-repeat; }

この方法がとくによく使われるのは、CSSから色を動的に変えたい 小さなSVGアイコン や、ライブラリの再利用コンポーネントに含まれる背景画像です。

💡 SVGのヒント: SVGはBase64にしてもよいですが、符号化せずインラインSVGとしてHTMLに直接書くこともできます。インラインSVGのほうが読みやすく、CSSやJavaScriptから扱いやすい一方、外部CSSファイルの中で使う場合はBase64が向いています。

Base64を使う場面・避ける場面

Base64と外部ファイルのどちらを選ぶかは、主に画像のサイズと使い方で決まります。代表的なケースを表にまとめました。

場面 おすすめ 理由
小さなアイコン・スプライト(2 KB未満) ✅ Base64が向く 容量への影響はほぼなく、HTTPリクエストを1つ減らせる
CSSに埋め込むファビコン ✅ Base64が向く 手軽で、外部ファイルに依存しない
プレースホルダーやスケルトン表示 ✅ Base64が向く HTMLと同時に即表示され、ちらつきが出ない
HTMLメール ✅ Base64が向く 外部画像をブロックするメールソフトが多い
本文の画像(写真、バナー) ❌ 避ける HTMLが重くなり、ブラウザのキャッシュも効かない
5 KBを超える画像 ❌ 避ける 33%の増加分が表示速度に響く
複数ページで使い回す画像 ❌ 避ける 外部ファイルはキャッシュされるが、Base64はページごとに再取得される

画像をBase64にする利点

使いどころを選べば、Base64にははっきりした利点があります。

欠点と限界

一方で、Base64には見過ごせない代償もあります。

⚠️ 実践的な目安: Base64は2 KB未満の画像だけに使ってください。それ以外は、最適化した外部ファイル、とくにWebPやAVIFのほうがサイトの表示速度には有利です。

Base64とサイトの表示速度(PageSpeed)

Base64が速度に与える影響は、何を符号化するかで決まります。小さなアイコンであれば、HTTPリクエストが1つ減ることで体感上の Time to First Byte が改善し、同時接続の数も抑えられます。これはCore Web Vitalsの指標、とくにページの主要素が埋め込みアイコンである場合の LCP(Largest Contentful Paint)に良い形で表れます。

逆に大きな画像をBase64で埋め込むと、HTML文書そのものが重くなり、描画の開始が遅れます。Google PageSpeed Insightsも、HTMLが重すぎるページを低く評価しがちです。写真やバナーは、必ず最適化した外部ファイルで扱ってください。

Web用に画像を最適化するなら、まずは圧縮と、効率のよい形式への変換から始めます。ImageToolsの 圧縮 なら、ファイルをどのサーバーにも送らず、ブラウザ内で処理できます。

画像をBase64に変換する方法

画像からBase64の文字列をつくる方法はいくつかあります。

今すぐ画像をBase64に変換

画像をアップロードすれば、HTMLやCSSにそのまま貼れるデータURIが手に入ります。処理はすべてブラウザ内で完結します。

Base64ツールを開く →

よくある質問

画像のBase64とは何ですか?

Base64は、画像などのバイナリデータをASCII文字のテキストに変換する方式です。画像ファイルを別途読み込む代わりに、中身を長い文字列に変換してHTMLやCSSに直接埋め込み、データURIとして扱えるようにします。

画像をBase64にするとサイトが遅くなりますか?

使い方次第です。アイコンやファビコン、プレースホルダーのような小さい画像なら、HTTPリクエストが1つ減るぶん速くなります。反対に大きな画像では、ページが重くなるうえブラウザのキャッシュも効かなくなり、かえって遅くなります。

Base64を使う目安のサイズはどれくらいですか?

目安は2 KB未満の画像だけに使うことです。それを超えると、エンコードによる約33%の増加とキャッシュが効かない不利が上回り、外部ファイルのほうが効率的になります。

Base64はすべてのブラウザで使えますか?

使えます。Base64のデータURIは、Chrome、Firefox、Safari、Edgeとそれぞれのモバイル版を含め、現行のブラウザすべてが対応しています。IE6のような非常に古いブラウザは非対応ですが、いま実務で気にする必要はありません。

オンラインで画像をBase64に変換するには?

ImageToolsの「画像をBase64に」ツールが使えます。画像をアップロードするだけで、Base64の文字列と、HTMLやCSSにそのまま貼れるデータURIが自動で生成されます。