SVG → Base64

SVG から Base64 へ

SVG を HTML や CSS にそのまま貼れる data URI に変換 — Base64 と、たいてい小さくなる URL エンコード形式を並べて表示します。

SVG → Base64

☞ すべてブラウザ内で処理 — アップロードは一切ありません

ここに SVG をドロップ

またはクリックして選択 — SVG のみ

リクエストを 1 つ減らす

SVG を data URI としてインライン化する理由

data URI は画像そのものを HTML や CSS の中に埋め込むため、ブラウザが画像用に 2 回目のリクエストを出しません。小さなアイコンでは、これが「すぐ表示される」か「一拍遅れて表示される」かの分かれ目になります。

引き換えになるのはキャッシュです。インライン化したアイコンは、それを含むページを読むたびに毎回ダウンロードされ、単独ではキャッシュできません。初期表示に効く数個だけをインライン化し、残りはファイルのままにしておきましょう。

3 ステップ

SVG を Base64 にエンコードする手順

01

SVG をドロップ

.svg ファイルを選びます。ファイルは端末内に留まります。

02

形式を選ぶ

Base64 か URL エンコードの data URI をコピーします。

03

貼り付ける

用意された img タグや CSS の背景指定をそのまま使います。

かんたん回答

SVG から Base64 のよくある質問

Base64 と URL エンコード、どちらを使うべきですか?

SVG ではたいてい URL エンコードのほうが小さくなります。SVG はテキストである一方、Base64 はどんなデータでも約 33% 増やしてしまうからです。URL エンコードは読めるので、スタイルシート上で目当ての図形かどうかも確認できます。処理の途中で生の文字が壊れる環境では Base64 を使ってください。

data URI が元のファイルより大きいのはなぜですか?

Base64 は 3 バイトを 4 文字で表すため、3 分の 1 の増加は避けられません。まず SVG 最適化ツールを通してみてください。エディターのメタデータや過剰な小数桁のほうが、エンコードより容量を食っていることがよくあります。

CSS の背景に使えますか?

使えます。CSS ブロックはそのまま貼り付けられる形になっています。二重引用符の中で URL エンコード形式を使うため、エンコーダーは SVG 内の二重引用符を単一引用符に置き換えています。

CSS に入れたのにアイコンが出ません

ほぼ必ず、エスケープされていない `#` が原因です。`#fff` のような色指定があると URL がそこで切れ、以降はフラグメント扱いになります。ここでの出力はすでにエスケープ済みなので、たいていは後から data URI を手で編集したときに起きます。

ファイルはアップロードされますか?

いいえ。エンコードはブラウザ内での単なる文字列処理です。