Base64→画像変換 - Data URIをデコードしてファイルとして保存

Base64文字列またはdata:image形式のURIを貼り付けると画像が戻ります。実際の形式はデコード後のバイト列から判定するため、ダウンロードの拡張子は常に正しくなります。デコードはブラウザ内で完結します。

上に文字列を貼り付けるとデコードされます。改行、インデント、前後の引用符はこちらで処理します。

Base64→画像変換の仕組み

このツールは、画像をテキスト化したものを受け取り、ファイルの形に戻します。Base64は転送用のエンコード方式です。任意のバイト列を A-Z、a-z、0-9、プラス、スラッシュという64文字だけで書き直すことで、テキストしか通さない場所をバイナリデータが通れるようにします。`data:image/png;base64,` というプレフィックスの後ろにデータ本体を続けたData URIの形にすれば、HTMLの属性値、CSSのurl()、JSONのフィールド、メール本文の中に直接置くことができます。デコードはこの対応関係を厳密に逆にたどるだけなので、返ってくるバイト列は入力されたバイト列そのもので、EXIFブロックやカラープロファイルまで一致します。表示の前に、ツールは入力を整えます。完全な img タグや `background-image: url(…)` 宣言の中に埋もれていてもデータ本体を見つけ出し、コードフォーマッターが入れた改行やインデントを取り除き、前後の引用符を外します。そのうえで、デコードされたデータの先頭バイトから形式を判定します。PNGのシグネチャ 89 50 4E 47、JPEGのマーカー FF D8 FF、GIF87a/GIF89aのヘッダー、RIFF/WEBPコンテナ、AVIFのftypボックス、あるいは svg 要素の開始タグです。プレフィックスに書かれたMIMEタイプはあくまで自己申告にすぎません。生成側が間違えることもあれば誰でも書き換えられる、ただのテキストなので、参考として表示はしますが、ダウンロードファイル名の決定には決して使いません。すべての処理はこのページの中、お使いの端末上で行われ、文字列がどこかへ送られることはありません。

Base64を画像に戻したくなる場面

埋め込み画像は配布には便利でも、扱うには不便です。デコードすればテキストが再びファイルに戻り、開いたり編集したり添付したりできるようになります。

スタイルシート、バンドルされたJSファイル、メールのHTMLソースに埋め込まれたアイコンや背景画像を取り出す
ページやログ、APIレスポンスの中にある見慣れないData URIが、信用する前に本当は何なのかを確認する
データベースのダンプやJSONペイロードに含まれるBase64のカラムを、表示できる画像に戻す
素材ファイルを持たない単体HTMLページや自動生成レポートから画像を抜き出す

Base64を画像に変換する方法

貼り付けて確認するだけです。デコードは即座に、すべてブラウザ内で行われます。

1

文字列を貼り付けます。完全な data:image/…;base64, 形式のURI、CSSのurl()宣言やimgタグまるごと、プレフィックスのない生のBase64、どれでも構いません

2

改行、インデント、前後の引用符は自動で取り除かれるので、整形済みのソースからそのままコピーしても問題ありません

3

プレビューと合わせて、判定された形式、ピクセル寸法、デコード後のファイルサイズを確認します

4

画像をダウンロードします。拡張子は実際のバイト列から決まるため、プレフィックスの記載が誤っていても壊れたファイルを受け取ることはありません

よくある質問

必要ありません。プレフィックス付きでも付きでなくても動作します。プレフィックスはData URI構文の一部であってエンコードされた画像の一部ではなく、後続のデータをどう解釈すべきかをブラウザに伝えるものです。付いていればツールがそれを読み取り、何と申告していたかを表示します。付いていなくても、形式はいずれにせよデコード後のバイト列から判定するので、失われるものは何もありません。
プレフィックスはデータではなくテキストだからです。PNGのバイト列の前に `data:image/jpeg;base64,` と書くことは誰にでもでき、実際に多くの生成ツールがうっかりそうしています。テンプレートの流用、MIMEタイプのべた書き、画像を書き出し直したあとに古い文字列を使い回す、といった経緯です。それを信じてしまえば、どのJPEGデコーダーでも開けない.jpgという名前のファイルを保存することになります。このツールは代わりに先頭バイトを読み、両者が食い違う場合はその旨を表示し、バイト列に従ってファイル名を付けます。
ほとんどの場合、コピーが途中で切れています。長いData URIは数万文字に及ぶことがあり、表示領域の端で止まってしまった選択範囲、折り返してバックスラッシュを挿入したターミナル、各行の先頭に + を足した差分ビューなどは、いずれもデコードできない文字列を生みます。ほかによくある原因としては、& の代わりに & などのHTMLエンティティが残っている場合や、+ と / の代わりに - と _ を使うURLセーフ版で、これはデコード前に変換が必要です。
問題ありません。フォーマッターやミニファイアの出力は長いData URIを複数行に折り返すのが普通ですし、メールクライアントは76文字で強制改行します。空白文字はBase64の一部ではないため、デコード前に取り除かれます。周囲の構文ごと貼り付けても構いません。`background-image: url("data:…");` という宣言まるごと、img タグ、引用符付きのJSON文字列、いずれでもデータ本体をその中から抽出します。
まったく落ちません。Base64は可逆的なエンコードであり、圧縮でも再エンコードでもありません。デコードされたバイト列は、EXIFメタデータ、ICCカラープロファイル、埋め込みサムネイルまで含めて、元々エンコードされたファイルと同一です。結果が思ったより悪く見える場合、劣化はエンコードより前に起きています。たとえば低品質のJPEGとして保存されていた、あるいは先に縮小されていた、といった具合です。
できます。SVGはXMLなのでバイナリのシグネチャを持ちません。そのため、マークアップの形で判定します。デコードされたテキストがタグで始まり、XML宣言やコメントの直後あたりに svg 要素があることが条件です。.svgとしてダウンロードされ、テキストエディターで開けます。逆方向についても知っておくと役に立ちます。SVGはもともとテキストなので、Base64にエンコードしてもサイズが約3分の1増えるだけで、得るものはありません。
PNG、JPEG、GIF、WebP、AVIF、BMP、ICO、SVGを、それぞれファイル先頭のシグネチャから判定します。Base64のデコードには成功したもののどれにも一致しない場合は、ダウンロードではなく明確なメッセージが表示されます。たいていはPDF、フォント、ZIP、あるいはたまたまBase64化されていた単なるテキストです。
いいえ。デコードはこのページ内で動く数行のJavaScriptで行われます。文字列はタブのメモリ内に留まり、プレビュー画像はローカルで生成されたblob URLで、ダウンロードもお使いの端末上で作られます。サーバー側の処理は存在せず、データを運ぶリクエストもなく、ネットワークを切断してもページは動き続けます。貼り付けられるData URIはスクリーンショットやスキャン、私的な書類であることが多いため、この点は特に重要です。

その他の画像ツール

画像編集のニーズに応える他の強力なツールをご覧ください

画像圧縮

サイズ縮小

サイズ変更

寸法変更

画像切り抜き

領域を切り取る

形式変換

形式を変更

フォトエディター

写真を編集

画像回転

画像を回転

画像反転

水平/垂直反転

透かしを追加

透かし

枠線追加

画像枠線を追加

角丸

角丸を追加

フィルター

明るさ/コントラスト

顔をぼかす

顔を隠す

モザイク

領域をぼかす

背景削除

背景を削除

画質向上

AI拡大

テキスト追加

画像にテキストを追加

コラージュ

複数の画像を結合

HTMLから画像

Webを画像に

GIF からシーケンス

フレーム抽出

画像の余白を削除

空白の縁を削除

画像を一括リネーム

ファイル名を安全に一括変更

円形切り抜き

画像を円形に切り抜き

白黒

画像をグレースケールに変換

画像分割

画像をグリッドに分割

画像結合

画像を1つに結合

DPI変更

画像のDPIメタデータを設定

画像→Base64

画像をBase64にエンコード

画像をPDFに結合

複数の画像を1つのPDFにまとめる

HEIC→JPG

iPhoneのHEIC写真をJPGに変換

EXIF除去ツール

GPS位置情報を含む写真の隠しメタデータを表示・除去

ファビコン ジェネレーター

完全なアイコンセットとHTML

カラーパレット

画像から色を抽出

HEIC→PNG

iPhoneのHEIC写真をロスレスでPNGに変換

文字を被写体の後ろに

写真の被写体の後ろに文字を回り込ませる。すべてブラウザ内で完結

カラーピッカー

任意のピクセルのHEX・RGB・HSLを取得

署名メーカー

署名を手書きして透過PNGでダウンロード

署名の背景削除

紙の上のインクを透過に

背景透過ツール

背景を透明にする