ファイルを選択
  1. base64hub
  2. 画像ツール
  3. JPG を Base64 に変換

JPG を Base64 に変換

JPG や JPEG をドロップすると、Base64 や data:image/jpeg の URI が得られます。スマートフォンの写真は大きいので、エンコード前に縮小したり、GPS を含む EXIF データを削除したりできます。

無料 登録不要・制限なし ローカル アップロードなし EXIF GPS とカメラの情報を削除 更新日 2026/10/27
ここに画像をドロップ、貼り付け、または選択
入力 –出力 –サイズ –

ブラウザ内で処理されます。このページがデータをどこかに送信することはできません – その根拠

JPG を Base64 に変換する方法

  1. .jpg か .jpeg ファイルをドロップするか、ファイル選択で選ぶか、コピーした画像を Ctrl+V で貼り付けます。
  2. カメラやスマートフォンから取り込んだままの写真なら、最大幅(たとえば 1200)を設定し、品質 を調整します。デフォルトは 85% です。
  3. 写真を共有や公開するなら、メタデータ(EXIF)を削除 にチェックを入れます。
  4. 出力形式 を選びます。デフォルトは Data URI で、たいていの API が求めるのはプレーン Base64 です。それから 出力をコピー します。

プレビューにはピクセル寸法と、再エンコード後の新しいファイルサイズが表示されます。いくつか設定を試しながら数値が下がるのを確認できます。

JPG の Base64 の中身

JPEG ファイルはすべて SOI マーカー FF D8 FF で始まるので、Base64 ではすべて /9j/ で始まります。続く文字で、どのヘッダーが来るかがわかります。

ファイルの先頭Base64 の先頭よくある出どころ
FF D8 FF E0 + JFIF/9j/4AAQSkZJRg画像エディター、Web 用の書き出し、ほとんどの変換ツール
FF D8 FF E1 + Exif/9j/4 と、その後に変化する文字カメラやスマートフォン(EXIF ブロックが先頭)
FF D8 FF DB/9j/2wメタデータを削除したものや最小構成のエンコーダー

カメラの JPEG には EXIF ブロックがあり、端末の機種、撮影日時、向き、位置情報がオンなら GPS 座標が入っています。Base64 はそのどれも隠しません。Base64 を JPG に変換 で文字列をデコードすれば、誰でもメタデータがそのまま残った元のファイルを得られます。

エンコード前に写真を小さくする

最近のスマートフォンの写真は数 MB あります。Base64 にするとさらに 3 分の 1 増え、JSON のリクエスト、CSS ファイル、HTML メールには大きすぎ、ほかの場所でも遅くなります。

ほとんどの効果は 2 つの設定で得られます。

  • 最大幅 は、幅の上限をピクセル数で設定します。幅を半分にすると、ピクセル数は 4 分の 1 になります。
  • 品質 は JPEG の圧縮を制御します。写真が再エンコードされるとき、つまり 最大幅、変換先、メタデータ(EXIF)を削除 のいずれかを設定したときに効きます。写真なら 75% と 85% の違いはほとんど見分けられず、ファイルは 95–100% のときよりずっと小さくなります。

JPEG を再エンコードすると、デコードしてもう一度圧縮するため、必ず細部が少し失われます。元のファイルから一度だけ行い、結果をもう一度変換ツールにかけるのは避けてください。

JPEG には透過がありません。背景が透明な PNG や WebP を JPEG に変換すると、透明な部分は白になります。アルファチャンネルが必要なら PNG か WebP のままにしてください。

JPG の Base64 が使われる場面

  • JSON API による写真のアップロード:画像を説明・分析する AI の画像認識モデルも含みます。多くは大きな画像をサービス側で縮小するので、小さめの JPEG を送れば、見た目の劣化なしにリクエストが速くなります。
  • HTML に埋め込むサムネイルやプレースホルダー:フルサイズの画像を読み込む間に表示する、幅 20 ピクセルのぼかしたプレビューなど。
  • 単一ファイルの文書:写真を何枚か埋め込んだ HTML のレポートなど。

Web サイトの大きな写真には、やはり通常の画像ファイルのほうが適しています。キャッシュ、遅延読み込み、srcset による複数サイズの配信ができるからです。

Python でリサイズしてエンコードする

Pillow なら写真のリサイズと再エンコードが数行ででき、Base64 化は標準ライブラリが行います。Pillow は明示的に渡さない限り EXIF を新しいファイルにコピーしないので、これでメタデータも削除されます。

import base64, io
from PIL import Image

with Image.open("photo.jpg") as im:
    im.thumbnail((1024, 1024))
    buf = io.BytesIO()
    im.save(buf, "JPEG", quality=80)

b64 = base64.b64encode(buf.getvalue()).decode("ascii")

ファイルの読み込みやストリーミングについては Python の Base64 をご覧ください。

よくある問題

  • 写真が回転して表示される。 多くのスマートフォンは、ピクセルをセンサーの向きのまま保存し、回転を EXIF タグに記録します。現在のブラウザはそのタグを適用し、このツールも写真を描き直すときは見た目の向きを保ちます。EXIF を無視するソフトウェアでは、元の向きのまま表示されることがあります。
  • Base64 が思ったより長い。 メーターで入力サイズを確認してください。メッセンジャーで受け取った「小さな」写真でも、幅が 3000 ピクセルあることがあります。
  • API に画像を拒否される。 data:image/jpeg;base64, の接頭辞付きか Base64 だけかを確認し、タイプは image/jpg ではなく image/jpeg を送ってください。

よくある質問

Data URI では image/jpg と image/jpeg のどちらですか?

image/jpeg です。image/jpg は登録されたタイプではありません。ブラウザは画像のバイト列から判別するので表示はされますが、メディアタイプを検証する API では拒否されることがあります。

Base64 にした JPG にも GPS の位置情報は残っていますか?

元のファイルに含まれていれば残っています。Base64 は EXIF も含めてすべてのバイトを写すからです。取り除くには メタデータ(EXIF)を削除 にチェックを入れてください。エンコード前に、写真がメタデータなしで描き直されます。

JPG の Base64 が /9j/ で始まるのはなぜですか?

JPEG はすべてバイト FF D8 FF で始まり、この 3 バイトをエンコードするとちょうど /9j/ になります。違う文字で始まる文字列は、ファイル名が何であれ JPEG ではありません。

写真の Base64 を短くするには?

エンコード前にピクセル数と品質を下げてください。表示サイズに合わせた 最大幅 と 75–85% 程度の 品質 にすれば、Base64 そのものに何をするよりもずっと、スマートフォンの写真を小さくできます。