Compress Image to 20KB — 100% in Your Browser
Need a 20KB file for a strict upload limit? zipo.pics compresses locally and shows the exact output size before you download.
Strict file-size caps turn up everywhere: a government upload form refuses anything over 240 KB, an email gateway bounces attachments above 1 MB, a CMS throws an error past 200 KB. zipo.pics is built to hit those caps on purpose — you set the exact target and the compressor keeps re-encoding locally until the output fits, showing the live size before you download. No guessing, no resubmitting.
Drag images here, or click to choose
Batch upload, auto-compress with current settings; all computation runs in your local browser
Never uploaded to a server · images never leave the browser
How an exact target size is reached
zipo.pics does not apply one fixed quality setting and hope. It encodes your image, measures the result, and if the file is still too big it tightens compression and tries again — entirely in your browser. Because the engine is Rust compiled to WebAssembly, each pass takes milliseconds, and you see the final byte count before the download button ever appears. That is the difference between "roughly smaller" and "under the limit".
Which format reaches the target with the best quality
For photos, WebP and AVIF reach tiny sizes while keeping detail; JPG is a close, universally compatible runner-up. PNG is lossless, so it resists shrinking and is best when every pixel must survive (logos, screenshots with text). Pick the format that matches your image, set the cap, and compare the preview against the original — you decide where "small enough" meets "still looks right".
FAQ
How do I get an image under 20KB?
Drop your image in, set 20KB as the target size, and zipo.pics re-encodes locally until it fits — you see the result before downloading.
Which format reaches 20KB with the best quality?
WebP and AVIF hit small sizes at high quality; JPG is efficient for photos. PNG stays larger because it is lossless.
Is my image uploaded?
Never. All compression runs in your browser with Rust + WebAssembly; images never leave your device.
Is my image uploaded to a server?
No. Every conversion runs inside your browser, on your own device, using Rust compiled to WebAssembly. The image bytes are never sent to zipo.pics or to any third party — which is also why the page keeps working offline after it has loaded once.
Is zipo.pics free? Is there a limit on how many images I can compress?
Standard compression is free and unlimited: no account, no image-count cap. Credits are only needed for optional extras such as AI enhancement, noise removal, watermark removal and HD export.
Which image formats can it compress?
PNG, JPG/JPEG, WebP, AVIF and GIF, and you can convert between them. Choose PNG to shrink a photo while keeping every pixel, WebP or AVIF for the smallest file at a given quality, and JPG when you need universal compatibility.
Will compressing my image reduce its quality?
You decide. Each result is shown next to the original before you download, so you can lower or raise the strength per image. Lossless mode re-encodes the same format without discarding data; stronger settings trade a little fine detail for a much smaller file.