Base64を画像に変換

Base64入力を画像に変換し、迅速かつ簡単に画像を取得できるBase64から画像へのツールを使用してください。

2件中5件の評価
Base64を画像に変換

Base64を画像に変換は、Base64でエンコードされた画像データを元の画像に戻す無料ツールです。

Base64では画像をどのように表現するのですか?

Base64は、画像を構成するバイナリの各バイトを、限られた種類の印字可能な文字へ置き換えて表現します。メール、JSON、HTMLなど、バイナリデータを直接扱うのではなく、テキストを受け渡すよう設計された仕組みで使いやすくするための方式です。

標準のBase64では、英大文字、英小文字、数字、プラス記号、スラッシュを使用します。末尾にはパディングとして等号が付くことがあります。通常、入力の3バイトがBase64の4文字になるため、エンコード後のデータ量は元データより約3分の1増えます。

短いテキストの例を見ると、処理の仕組みがよく分かります。

  • テキストとして解釈した元のバイト列: Man
  • Base64の出力: TWFu

画像でも処理は同じですが、元のバイト列が表すのは可読テキストではなく、PNG、JPEG、GIF、WebPなどの画像形式です。Base64データだけでは画像形式は示されません。形式情報はデータURLに含まれている場合もあれば、デコード後のファイルシグネチャから判別できる場合もあります。

図解:テキストがBase64を画像に変換ツールを双方向に通過する

Base64を画像に戻すにはどうすればよいですか?

Base64の画像データをツールに貼り付けて変換を実行すると、画像として出力されます。まず、その値がBase64データだけなのか、完全なデータURLなのかを確認してください。

  1. エンコードされた値を見つけ、JSON、CSS、ソースコードなどに含まれる前後の引用符を除いてコピーします。
  2. data:image/png;base64,のようなデータURLのプレフィックスがないか確認します。実際のBase64ペイロードはコンマの後から始まります。
  3. 完全なデータURLが受け付けられない場合は、プレフィックスを削除し、エンコード済みのペイロードだけを送信してください。デコーダーによって、データURL全体を受け付けるかどうかが異なります。
  4. 別の場所で使用する前に、出力された画像の内容、サイズ、形式が想定どおりか確認します。
digily.link のBase64を画像に変換ツールと入力フォーム

メールソフトが長いBase64値を折り返すと、空白や改行が入ることがあります。こうした空白文字を無視するデコーダーもありますが、厳密なものではエラーになります。ペイロードに句読点や説明文を追加しないでください。数字はBase64で使用できる文字ですが、有効な文字だけで構成されたデータが必ず画像になるとは限りません。

空のBase64値はバイトを一切表さないため、使用可能な画像にはなりません。また、Base64では元データよりサイズが増えるため、非常に長い値は扱いにくくなります。処理するには、エンコードされたデータ全体を転送してデコードする必要があります。

Base64画像をデコードできないのはなぜですか?

Base64画像をデコードできない主な原因は、データの形式が壊れている、一部が欠けている、異なる文字体系が使われている、または中身が画像のバイト列ではないことです。生成元で複数回エンコードされている場合は、二重エンコードも原因になります。エラーが起きる位置や状態を確認すると、原因を絞り込めます。

  • 入力が途中で切れている。 ログ、データベースビューアー、メッセージングシステムなどからコピーすると、長い値の末尾が切れることがあります。文字が欠けると、通常はデコード後のバイト列も不完全になります。
  • 種類または文字体系が違う。 標準Base64では+と/を使いますが、Base64urlでは一般に-と_を使います。別の種類を想定したデコーダーでは、入力が拒否されることがあります。
  • パディングがない。 Base64値の末尾には、等号が1個または2個付くことがあります。パディングを省略するシステムや自動的に補うデコーダーもありますが、厳密な実装では必要になる場合があります。
  • 画像ではないバイナリデータである。 Base64はPDF、アーカイブ、フォントなど、あらゆるバイト列を表現できます。そのため、有効なBase64であっても、有効な画像であるとは限りません。
  • 文字エンコーディングを混同している。 アクセント付き文字、絵文字、非ラテン文字はBase64の文字体系に含まれません。このような文字は、一般にはUTF-8などで先にバイト列へ変換してからBase64でエンコードする必要があります。
  • 二重にエンコードされている。 1回目のデコード結果がBase64文字だけで構成された別の長いデータになる場合、生成元で2回エンコードされた可能性があります。それが意図された処理だと生成元から確認できる場合に限り、中間の値をもう一度デコードしてください。

一般的なBase64デコーダーで意味不明な文字が表示されても、デコードに失敗したとは限りません。画像のバイト列はバイナリデータなので、テキストとして読める形にはなりません。画像以外のペイロードを確認する場合はBase64デコーダーを使い、逆に画像をBase64へ変換する場合は画像をBase64に変換を使用してください。

Base64画像データはどこで使われますか?

Base64画像データは、バイナリファイルをテキスト中心のフィールドや文書で受け渡す必要がある場面で使われます。代表的な例として、HTMLやCSSのデータURLに埋め込まれた画像、JSON APIペイロード内の画像プロパティ、MIMEメールのパートがあります。

クエリ文字列で使われることもありますが、アプリケーションのクエリパーサーが標準Base64の文字を正しく処理できない場合があります。特に、フォーム形式のパーサーでは、プラス記号を空白、等号を区切り文字として扱うことがあります。Base64urlは問題になりやすい文字を別の文字に置き換え、多くの場合はパディングも省略するため、URLやトークンに適しています。

国際化ドメイン名ではBase64を使用しません。IDNAではASCIIラベルはそのまま使われ、非ASCIIのU-labelはPunycodeを使ったA-labelで表現される場合があります。一方、URLのクエリ文字列など、ドメイン名以外の部分にBase64値が含まれることはあります。ブラウザーのアドレス欄からコピーした値を調査するときは、この違いが重要です。

JSONにはバイナリ専用のデータ型がないため、APIではBase64画像を引用符で囲んだ文字列として格納することがあります。テキスト形式でデータを交換するには便利ですが、ペイロードのサイズは増えます。大容量のファイルを送信する場合やアップロード頻度が高い場合は、通常のバイナリファイルとしてアップロードするほうが適していることがよくあります。

Base64エンコードの機密性とサーバー処理

Base64はエンコード方式であり、暗号化ではありません。機密性を保つ機能はなく、値を入手した人ならパスワードや鍵なしでデコードできます。そのため、認証情報、非公開の写真、機密文書をBase64へ変換するだけで保護しようとしないでください。

このツールの処理はサーバー上で行われます。入力データはHTTPS経由でサーバーへ送信され、保存されません。HTTPSは転送中の通信を保護しますが、Base64値そのものを暗号化されたコンテンツに変えたり、信頼できない生成元を安全にしたりするものではありません。

デコードしても、画像が無害かどうかは確認されません。不明な送信元から受け取ったBase64値を画像に戻す場合は、ほかのダウンロード画像と同様に慎重に扱ってください。

よくある質問

Base64データだけで画像形式を判別できますか?

判別できる場合もありますが、Base64の文字体系自体に形式情報はありません。デコード後のファイルには、一般にマジックバイトと呼ばれるシグネチャが含まれており、ソフトウェアはこれを使ってPNG、JPEG、GIFなどの形式を区別できます。データURLにメディアタイプが記載されている場合もありますが、その指定が誤っている可能性もあるため、実際のバイト列より優先すべきではありません。

Base64をデコードすると画像の品質は落ちますか?

いいえ。Base64が正しくデコードされれば元のバイト列がそのまま復元され、画像が再圧縮されることもありません。その後、別のプログラムでデコード済みファイルを編集または変換しない限り、画質、色情報、埋め込みメタデータは変わりません。

Base64にSVG画像を含めることはできますか?

はい。SVGデータもBase64でエンコードできますが、表示できるかどうかは受信側のソフトウェアによって異なります。SVGはXMLベースの形式で、スクリプト、リンク、外部参照を含められます。不明な生成元から受け取ったBase64エンコード済みSVGを、安全だと決めつけて開かないでください。

Base64画像が元のファイルより大きくなるのはなぜですか?

Base64では、元データの3バイトごとに4文字が生成され、最後の単位にはパディングが含まれる場合があります。RFC 4648では、参照元の仕様で省略が明示的に許可されていない限り、パディングが必要です。そのため、データURLのプレフィックス、JSONの引用符、転送時のオーバーヘッドを加える前の段階でも、データ量は約3分の1増えます。通常のファイルアップロードに対応しているシステムなら、元のバイナリ画像を送信するほうが一般にデータ量を抑えられます。

類似のツール

画像をBase64に変換

画像をBase64文字列に変換し、効率的なデータエンコーディングを実現する当社の画像からBase64ツールをご利用ください。

4,678
13

人気のツール