UltKit

画像をBase64に変換

画像ファイルを、HTML、CSS、JSONリクエスト、Markdownファイルに貼り付けられる1行のテキストに変換します。先頭にdata URIの接頭辞が付いているので、貼り付けた瞬間からそのまま使えます。

データ変換

またはCSV, TSV, TXT … ファイルをここにドロップ ·

1ファイルあたり最大95 MB· 最大20ファイルまで· 30分後に削除

出力

ファイルは当社のサーバーで処理され、30分後に削除されます。

このツールの使い方

  1. 1

    画像を追加する

    PNG、JPG、GIF、WebP、SVGのファイルをアップロード欄にドロップします。一度に最大20枚、1枚あたり95 MBまで対応しています。

  2. 2

    接頭辞を残すか外すか選ぶ

    データURIプレフィックスがオンなので、結果は data:image/png;base64, または該当する形式のプレフィックスで始まります。APIがプレフィックスなしのBase64文字列を求める場合は、詳細設定でオフにしてください。

  3. 3

    変換してコピーする

    Base64テキストに変換を押すと、画像ごとに.txtファイルをダウンロードできます。そのままコードに貼り付けて使えます。

画像をアップロードしてBase64テキストに変換を押してください。ファイルがプレーンな文字列にエンコードされ、data:image/…;base64, で始まるので、imgのsrcやCSSのurl()にそのまま入れられます。画像自体は何も変わりません。

画像をBase64にすると便利な場面

Base64はRFC 4648(2006年)で定義されており、バイナリの3バイトを、A–Z、a–z、0–9、+、/ の64文字からなる4文字に対応させます。その結果は、テキスト用のどんな経路でも壊れずに届きます。1998年にLarry MasinterがRFC 2397として記したデータURIスキームにより、ブラウザはそのテキストをファイルとして扱えます。

フロントエンド開発者は、小さなアイコン、ローディング表示、プレースホルダー画像をインライン化し、追加リクエストなしでページを表示します。バックエンド開発者は、画像認識やOCRサービスなど多くのAPIがBase64フィールドで画像を受け付けるため、JSONに画像を入れて送ります。テスターはソースコード内にフィクスチャを保持し、単一ファイルのHTMLレポートやMarkdownメモを作る人は、メール送信やアーカイブ時にファイルが自己完結するようスクリーンショットを埋め込みます。

Base64の出力はこのような形になります

imgタグ内でデータURIにした1 × 1の透明PNG(68バイト)
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR4nGNgAAIAAAUAAXpeqz8AAAAASUVORK5CYII=" width="1" height="1" alt="1ピクセルの画像">

PNGアイコンファイル

24 KB

一般的なツールバー用アイコンセット、96 × 96 px

サイズ+33%、画質の変化なし

Base64テキスト

32 KB

3バイトにつき4文字、プレフィックス付き

ANY I

あらゆる画像

このツールは、JPG、PNG、WebP、HEIC、GIF、BMP、TIFF など、一般的な画像形式に対応しています。形式はファイルから自動的に判別されるので、画像の種類を知らなくても大丈夫です。

Any image 変換

BASE64

Base64エンコードされたテキスト

Base64は、RFC 4648で定義されたエンコード方式で、あらゆるバイナリデータを64種類の安全なテキスト文字の文字列に変換します。HTMLやCSSへのデータURIとしての画像埋め込み、メールへのファイル添付、JSONやXMLでのバイナリデータ送信に使われます。エンコードは完全に元へ戻せますが、データは約33%大きくなります。Base64は暗号化ではなく、セキュリティもありません。誰でもデコードできます。

圧縮方式
可逆
透過
–
アニメーション
–
登場時期
–
BASE64 変換

画像がBase64テキストになるのは、テキストしか運べないものの中に入れる必要がある場合です。たとえば、別リクエストなしのHTMLやCSSファイル、API呼び出しのJSONフィールド、テスト用フィクスチャ、単一ファイルのレポートなどです。

画像のインライン化がページに役立つ場合と逆効果になる場合

インライン化するとリクエストを1つ減らせます。ブラウザがサイト1つにつき少数の接続しか開かなかったHTTP/1.1の時代には、特に効果がありました。HTTP/2やHTTP/3の多重化では小さな追加リクエストの負担は小さく、利点は薄れる一方、欠点は残ります。エンコードされた画像は個別にキャッシュできず、HTMLやCSSが変わるたびに再ダウンロードされ、含まれるファイルの解析も遅らせます。

目安として、ロゴやアイコンスプライトのように全ページに出る数KB程度の画像だけをインライン化し、それ以外はファイルとして配信するのが妥当です。写真をインラインにすることはほとんどありません。テキストではなく別のファイル形式が必要な場合は、画像変換をご利用ください。

Base64画像の長所

  • HTML、CSS、JSONの1ファイルで完結する
  • 小さなアイコンに追加リクエストが不要
  • JSONやXMLなどのテキスト形式でも安全に扱える
  • 劣化がなく元に戻せる

Base64画像の短所

  • バイナリファイルより約33%大きい
  • ブラウザが個別にキャッシュしない
  • 多くのメールクライアントで画像がブロックされる
  • コードの差分で確認しにくい

画像Base64変換に関するよくある質問

Base64とdata URIの違いは何ですか?

Base64はエンコードされた文字列そのものです。データURIは、その文字列にスキームと形式を付けたもので、data:image/png;base64, の後に文字列が続きます。これによりブラウザがデコードして表示できます。HTMLやCSSには完全なデータURIが必要で、JSON APIの多くはBase64の部分だけを求めます。

Base64にすると画像の容量はどれくらい増えますか?

Base64では3バイトごとに4文字が使われるため、テキストはファイルより約3分の1大きくなり、短いプレフィックスも加わります。30 KBのPNGは約40 KBのテキストになります。HTMLやCSSをgzip圧縮で配信すれば、転送時にはこの増加分の一部が戻ります。

Base64画像はメールの署名に使えますか?

確実ではありません。Gmailはデータ URI画像を表示せず、多くのデスクトップメールソフトも除去するため、受信者には壊れたアイコンが表示されます。画像はWebサーバーに置くか添付し、Base64はWebページやアプリで使ってください。

SVGアイコンはBase64でエンコードすべきですか?

使えますが、SVGはもともとテキストです。Base64にせずマークアップをURLエンコードするほうが、通常はデータURIが短くなり、読みやすさも保てます。小さなアイコンより大きい場合は、ブラウザがキャッシュできる別のSVGファイルにするのが適しています。

Base64テキストを画像に戻せますか?

はい。このエンコードは可逆で劣化がなく、デコードすれば元のバイト列そのものに戻ります。どのプログラミング言語にもデコーダーがあり、完全なデータURIをブラウザのアドレスバーに貼り付ければ画像が表示されます。

エンコードすると画質は変わりますか?

いいえ。Base64はバイトの表記方法を変えるだけで、ピクセルは変わりません。文字列を短くするには、先に画像を小さくします。たとえば画像を20KBに圧縮してから、小さくなったファイルをエンコードしてください。