ブラウザー専用ツール

Base64 画像圧縮ツール

Base64 画像をローカルでデコードし、サイズ・品質・形式を調整して、img src、CSS、JSON、API で使える標準形式のまま出力します。

ブラウザー内で処理 · アップロードなし · アカウント不要

空白を含む Raw Base64、または完全な data:image/...;base64,... を貼り付けます。遠隔 URL は非対応です。

圧縮設定

結果

元画像

画像を選ぶか貼り付けると表示されます。

結果画像

画像を選ぶか貼り付けると表示されます。

元の情報

結果の情報

Base64 は圧縮ではありません

標準 Base64 は3バイトを4文字で表すため、正確な長さは 4 × ceil(n / 3)、長期的な増加は約33.3%です。Data URL にはさらに MIME の接頭辞が付きます。

このツールは画像をデコードし、必要に応じて寸法・品質・形式を最適化してから標準 Base64 に戻します。専用の解凍処理は不要です。

Gzip とは出力が異なります

Base64 を Gzip にすると、画像要素が直接読めない圧縮バイナリになります。もう一度 Base64 にしても通常の画像 Data URL にはなりません。

JPEG、PNG、WebP はすでに圧縮済みです。画素数、非可逆品質、メタデータ、形式の変更で小さくなる場合がありますが、無損失や縮小を保証しません。

目標サイズと「大きくしない」判定

JPEG と WebP は回数を制限した品質探索を行い、それでも目標を超える場合だけ、縦横比を保って段階的に縮小します。

標準 Base64 の文字数が減らなければ元のバイトを返します。目標 KB に届かない場合は、より小さい最良候補と未達であることを表示します。

ローカル処理と安全境界

処理はタブ内だけで行い、アップロード、遠隔 URL、テレメトリー、外部画像ライブラリは使いません。上限は20 MiB、1600万画素です。

SVG、GIF、ICO、アニメーション WebP は実行・先頭フレーム化せず拒否します。Auto は透明度を守り、JPEG 変換には背景色の明示確認が必要です。Canvas はマルウェア検査ではありません。

Base64 を避ける場面

小さな自己完結アセットやテストには便利ですが、大きな画像は Blob URL、別ファイル、バイナリアップロードの方がキャッシュと転送に適します。

画像バイトと Base64 文字数を別々に比較します。data: 接頭辞を外しただけの差は圧縮に含めません。

よくある失敗と原因

  • Base64 の文字、padding、長さが不正です。
  • Data URL の MIME と magic bytes が一致しません。
  • 20 MiB または1600万画素を超えるか、ブラウザーがデコードできません。
  • アニメーション、多重画像、SVG、またはすでに十分最適化された画像です。

同等のコマンド

利用中のランタイムやシェルで再現できます。信頼できない入力は検証し、バイナリを端末へ直接出力しないでください。

Python

from PIL import Image
from io import BytesIO
import base64
image = Image.open(BytesIO(base64.b64decode(value)))
out = BytesIO(); image.save(out, 'WEBP', quality=82)
result = base64.b64encode(out.getvalue()).decode('ascii')

JavaScript

const blob = new Blob([bytes], { type: mime });
const bitmap = await createImageBitmap(blob);
ctx.drawImage(bitmap, 0, 0, width, height);
const output = await new Promise(r => canvas.toBlob(r, 'image/webp', 0.82));
bitmap.close();

Shell

printf '%s' "$VALUE" | base64 --decode > input.png
magick input.png -resize '1920x1920>' -quality 82 output.webp
base64 --wrap=0 output.webp

規格と公式リファレンス

Base64 画像圧縮のよくある質問

Base64 自体を圧縮できますか?

一般圧縮は可能ですが別形式になります。標準画像 Base64 を保つには、画像バイトを最適化して再エンコードします。

img src にそのまま使えますか?

はい。Raw は標準 Base64、Data URL は通常の data:image/...;base64 値です。

100 KB にする方法は?

Custom で100 KBを選びます。品質と寸法を有限回探索しますが、すべての画像が目標に届くとは限りません。

画質は下がりますか?

リサイズや JPEG/WebP の品質変更では下がる可能性があります。PNG の再エンコードは小さくならない場合があります。

なぜ約33%増えますか?

3バイトを4文字で表すためです。正確な文字数は 4 × ceil(n / 3) です。

画像はアップロードされますか?

いいえ。解析、Canvas、プレビュー、コピー、保存はブラウザー内で完結します。

Gzip は Base64 の前後どちら?

通信では外側の HTTP 応答圧縮を検討します。Gzip データは解凍なしで画像 Data URL として使えません。