🖼️ Free Image Tool

Compress Images Online — Free, Fast, Private

Reduce JPG, PNG and WebP image sizes without visible quality loss. Batch process multiple images at once.

🔒 Files never leave your browser — 100% private
🖼️
Drop images here
JPG, PNG, WebP — batch compress multiple at once
📂 Choose Images

-
Original total
-
Compressed
-
Saved
let _cimgs=[]; function ev(e){e.preventDefault();} function handleCImgs(fs){_cimgs.push(...Array.from(fs).filter(f=>f.type.startsWith('image/')));renderCI();} function renderCI(){ document.getElementById('fl4').innerHTML=_cimgs.map((f,i)=>`
🖼️
${escH(f.name)}
${fmtSize(f.size)}
`).join(''); document.getElementById('opts4').style.display=_cimgs.length>0?'flex':'none'; document.getElementById('act4').style.display=_cimgs.length>0?'flex':'none'; } function rmCI(i){_cimgs.splice(i,1);renderCI();} function resetCI(){_cimgs=[];renderCI();document.getElementById('res4').classList.remove('show');document.getElementById('prog4').style.display='none';} async function compressImgs(){ if(!_cimgs.length)return; const btn=document.getElementById('ci4btn');btn.disabled=true; document.getElementById('prog4').style.display='block'; const q=parseInt(document.getElementById('cq4').value)/100; const fmt=document.getElementById('cfmt4').value; const results=[];let origT=0,newT=0; for(let i=0;i<_cimgs.length;i++){ document.getElementById('pf4').style.width=Math.round(10+(i/_cimgs.length)*85)+'%'; document.getElementById('pl4').textContent=`Compressing ${i+1}/${_cimgs.length}...`; const f=_cimgs[i];origT+=f.size; const url=URL.createObjectURL(f); const img=await new Promise(r=>{const x=new Image();x.onload=()=>r(x);x.src=url;}); const c=document.createElement('canvas');c.width=img.naturalWidth;c.height=img.naturalHeight; c.getContext('2d').drawImage(img,0,0); const outFmt=fmt==='same'?(f.type||'image/jpeg'):fmt; const blob=await new Promise(r=>c.toBlob(r,outFmt,q)); newT+=blob.size; const ext={['image/jpeg']:'jpg',['image/png']:'png',['image/webp']:'webp'}[outFmt]||'jpg'; results.push({blob,name:f.name.replace(/\.[^.]+$/,'')+'-compressed.'+ext,orig:f.size,nw:blob.size}); URL.revokeObjectURL(url); } document.getElementById('pf4').style.width='100%'; document.getElementById('pl4').textContent='Done!'; document.getElementById('r4orig').textContent=fmtSize(origT); document.getElementById('r4new').textContent=fmtSize(newT); const saved=origT-newT; document.getElementById('r4saved').textContent=saved>0?`-${fmtSize(saved)} (${((saved/origT)*100).toFixed(1)}%)`:'Already optimised'; const list=document.getElementById('ci4list'); list.innerHTML=results.map((r,i)=>`
${escH(r.name)}
${fmtSize(r.orig)} → ${fmtSize(r.nw)} · saved ${((1-r.nw/r.orig)*100).toFixed(1)}%
`).join(''); window._ciresults=results; document.getElementById('res4').classList.add('show'); btn.disabled=false; setTimeout(()=>{document.getElementById('prog4').style.display='none';},800); } function dlImg(i){const r=window._ciresults[i];const url=URL.createObjectURL(r.blob);const a=document.createElement('a');a.href=url;a.download=r.name;a.click();}

How it works

1

Choose images

Drop or select JPG, PNG or WebP images — multiple files at once.

2

Set quality

75% quality is usually indistinguishable from original. Lower = smaller file.

3

Download

Click Compress and download each image individually.

Why use this tool?

Batch compression — Compress 10 images in one click — not one at a time.

See savings — Instantly see how much space you saved per image and in total.

Format conversion — Optionally convert to WebP for 30–50% smaller files than JPG.

No quality guessing — Preview quality setting before compressing.

Frequently Asked Questions

Typically 40–80% reduction. A 3MB photo can easily become 500KB at 75% quality — with no visible difference on screen.
75% is the sweet spot for most uses — significant compression with no visible degradation. For print quality, use 85–90%.
JPG, PNG, WebP and most common image formats. Output can be saved as JPG, PNG, WebP or BMP.
No. All processing happens locally in your browser with no server limits. Compress any size image freely.

More Free Tools