Alat di browser

Kompresor gambar Base64

Dekode gambar Base64 secara lokal, atur dimensi, kualitas, atau format, lalu gunakan hasil standar untuk img src, CSS, JSON, dan API.

Diproses lokal · Tanpa upload · Tanpa akun

Tempel Raw Base64 dengan spasi opsional atau data:image/...;base64,... lengkap. URL jarak jauh tidak didukung.

Pengaturan kompresi

Hasil

Pratinjau asli

Pilih atau tempel gambar.

Pratinjau hasil

Pilih atau tempel gambar.

Info asli

Info hasil

Base64 adalah encoding, bukan kompresi

Base64 standar mewakili tiga byte dengan empat karakter: panjang tepat 4 × ceil(n / 3), sehingga kenaikan jangka panjang sekitar 33,3%. Data URL juga menambah prefiks MIME.

Alat ini mengecilkan byte gambar terlebih dahulu: dekode, ubah dimensi, kualitas, atau format bila berguna, lalu buat Base64 standar lagi.

Gzip menghasilkan data berbeda

Gzip pada Base64 menghasilkan biner yang harus didekompresi sebelum gambar dapat ditampilkan. Mengenkodenya lagi tidak menjadikannya Data URL gambar biasa.

JPEG, PNG, dan WebP sudah terkompresi. Mengurangi piksel, kualitas lossy, metadata, atau mengganti format bisa membantu, tanpa menjamin lossless atau lebih kecil.

Target ukuran tanpa hasil membesar

JPEG dan WebP memakai pencarian kualitas dengan batas tetap. Jika masih besar, dimensi diturunkan dalam putaran terbatas sambil menjaga rasio.

Jika karakter Base64 standar tidak berkurang, byte asli dipertahankan. Hasil lebih kecil yang belum mencapai target KB ditandai dengan jelas.

Proses lokal dan batas format

Semua tetap di tab: tanpa unggah, URL jarak jauh, telemetri, atau pustaka gambar. Batasnya 20 MiB dan 16 megapiksel.

SVG, GIF, ICO, dan WebP animasi ditolak agar tidak dijalankan atau kehilangan frame. Auto menjaga transparansi; JPEG memerlukan latar yang dikonfirmasi. Canvas bukan pemindai malware.

Kapan tidak memakai Base64

Cocok untuk aset kecil mandiri. Gambar besar lebih baik memakai Blob URL, file terpisah, atau unggahan biner agar cache dan transfer terpisah.

Byte gambar dan karakter Base64 dibandingkan sendiri-sendiri. Menghapus prefiks data: tidak dihitung sebagai kompresi.

Kegagalan umum yang dijelaskan

  • Karakter, padding, atau panjang Base64 tidak valid.
  • MIME yang dinyatakan berbeda dari magic bytes.
  • Lebih dari 20 MiB, 16 megapiksel, atau gagal didekode browser.
  • Animasi, multiframe, SVG, atau gambar sudah sangat optimal.

Perintah yang setara

Gunakan runtime atau shell yang tersedia. Validasi input tidak tepercaya dan jangan mencetak data biner langsung ke terminal.

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

Standar dan referensi resmi

FAQ kompresi gambar Base64

Bisakah Base64 dikompresi?

Kompresi umum membuat format biner lain. Agar tetap Base64 gambar standar, optimalkan byte lalu enkode ulang.

Bisa langsung dipakai di img src?

Ya. Raw adalah Base64 standar dan Data URL memakai data:image/...;base64.

Bagaimana menjadi 100 KB?

Pilih Custom dan 100 KB. Pencarian kualitas dan dimensi dibatasi; tidak semua gambar dapat mencapai target.

Apakah kualitas turun?

Bisa. Resize dan kualitas JPEG/WebP bersifat lossy; PNG mungkin tidak menjadi lebih kecil.

Mengapa sekitar 33% lebih besar?

Tiga byte menjadi empat karakter. Rumus tepatnya 4 × ceil(n / 3).

Apakah gambar diunggah?

Tidak. Analisis, Canvas, pratinjau, salin, dan unduh berjalan lokal.

Gzip sebelum atau sesudah Base64?

Untuk transfer, kompres respons HTTP luar bila sesuai. Gzip tidak dapat dipakai sebagai Data URL tanpa dekompresi.