Kompres gambar ke ukuran target

Tetapkan target dalam kilobyte dan alat ini mencari kualitas JPEG tertinggi yang muat — serta, jika Anda izinkan, memperkecil dimensi — sampai gambar pas.

Kompresi terjadi secara lokal di browser Anda. Gambar Anda tidak pernah meninggalkan perangkat.

Pilih target, unduh hasilnya

Letakkan gambar di sini

Masukan PNG, JPEG, WebP, atau GIF — keluaran JPEG. Klik untuk memilih.

Keluarannya JPEG: encoder WebP browser biasanya lebih unggul untuk target kecil, tetapi dukungannya beragam antar browser, jadi JPEG pilihan yang andal.

Cara kerja

Ukuran JPEG ditentukan oleh satu tombol yang dibuka browser: parameter toBlob(type, quality). Alat ini memperlakukannya sebagai masalah pencarian — mencari nilai kualitas tertinggi yang hasilnya masih di bawah target byte Anda.

Pencarian biner atas kualitas
Kualitas dikurung antara 0,05 dan 0,95 lalu dibelah duanya sekitar tujuh ronde, masing-masing meng-encode blob canvas sekali pakai. Ukuran naik-turun seiring kualitas secara monoton, jadi pencarian biner biasa mencapai nilai terbaik dalam sekejap untuk foto normal.
Tangga pengecilan
Jika kualitas 0,05 pun masih melewati target pada resolusi penuh, yang harus pergi adalah piksel — bukan cuma presisi. Gambar digambar ulang pada 90 %, lalu 80 %… dimensinya, dengan pencarian kualitas diulang di tiap anak tangga, sampai muat atau sisi terpendek menyentuh 64 px dan alat dengan jujur menyatakan kalah. Kotak centang membuat perilaku ini opsional.
Mengapa keluaran JPEG, bukan WebP
WebP pada kualitas visual yang sama biasanya 25–35 % lebih kecil sehingga target agresif tercapai dengan kerusakan lebih sedikit. Tetapi canvas.toBlob("image/webp") diam-diam jatuh ke PNG di browser tanpa encoder WebP, yang akan mengingkari janji ukuran — JPEG didukung di mana-mana, jadi itulah kontrak yang andal di sini.

Pertanyaan yang sering diajukan

Ini kompresi lossy atau lossless?

Lossy — dan memang disengaja. Mencapai target kilobyte seperti 200 KB dari JPEG kamera biasa (3–8 MB) mustahil dilakukan tanpa kehilangan, jadi alat menyetel tabel kuantisasi JPEG lewat parameter kualitas dan, bila perlu, membuang piksel dengan memperkecil ukuran. Berkas asli Anda tidak pernah disentuh; setiap percobaan adalah encode ulang segar dari canvas.

Bisakah mengompres banyak berkas sekaligus?

Tidak — satu gambar pada satu waktu, sesuai rancangan. Target ukuran dinilai per berkas, dan kualitas berlaku beda untuk grafik datar dibanding pemandangan ramai, jadi pemrosesan serial menjaga Anda jujur pada tiap hasil. Untuk kerja massal tanpa target ukuran, kompresor gambar biasa di situs ini mendukung batch.

Mengapa 200 KB? Angka ini sering muncul.

Portal paspor dan visa serta formulir lamaran biasanya membatasi unggahan di kisaran 100–300 KB, dan 200 KB adalah titik tengah yang menjaga wajah tetap tajam pada lebar 600–900 px. Bawaan alat ini mengikuti kasus itu, tetapi target berapa pun yang positif bisa dipakai — 20 KB untuk avatar forum, 500 KB untuk bukti cetak. Aturan portal sering berubah, jadi periksa syarat masing-masing situs.

Apakah hasilnya persis sebesar target?

Akan sama atau di bawahnya, tidak pernah lebih. Pencarian menemukan kualitas tertinggi yang muat — dan karena ukuran JPEG melompat per tingkat, hasilnya biasanya mendarat sedikit di bawah target. Jika hasilnya jauh lebih kecil, gambar Anda memang sangat datar sehingga terkompresi tanpa usaha.

Apakah ada yang diunggah ke server?

Tidak. Dekode, lingkaran encode, dan pemeriksaan ukuran adalah murni kerja API Canvas di tab browser Anda — tidak ada permintaan jaringan yang membawa gambar Anda. Alat ini tetap jalan meski jaringan dimatikan.