A free online image compressor that runs 100% offline: open the link, drop your images, done — everything happens locally in your browser, nothing is ever uploaded.
⚡ A 12 MB screenshot compresses to under 1 MB in well under a second — measured in the browser, no upload, no wait.
Try it now → — just open the link, no download needed. Works the same on desktop and mobile.
- Resize images to a max width
- Compress to a target file size (e.g. under 2MB) — automatically switches to JPEG and lowers quality step by step until it fits
- Works on a single image, multiple images, or a whole folder — drag-and-drop or file picker
- Download results one by one, or all at once as a single
.zip - 10 languages: English, Tiếng Việt, 中文, 日本語, 한국어, Español, Português, Français, Deutsch, Русский
A real 3200×2800px screenshot (1.26 MB PNG) compressed down to 502 KB — still fully legible, light enough to paste into Notion, Confluence, Outline, or any handbook page with an upload size limit:
Native Retina screenshots from macOS often start at 8–12 MB; those compress down by an even larger margin, since PNG handles gradients and photos far worse than JPEG does.
No queue, no upload progress bar, no server round trip to wait on — it's one <canvas> draw plus one toBlob() call, both native browser APIs. That's the entire reason it's fast: there's nothing else happening.
Tested on a Samsung Galaxy S23 in the default Samsung Internet browser — one tap to open, no lag picking or compressing images, output stays sharp. No app to install, nothing to update later.
Most "compress image" tools online require uploading your files to a server first. This one doesn't — resizing and compression run in your browser using the Canvas API. Your images never leave your device, whether you use the hosted page above or the file directly.
If you'd rather not depend on any hosted page at all:
- Download
index.html— right-click the link → Save As - Open the file in any browser
- Drop your images in
One file, no build step, no dependencies, no install. Works without internet after that one download.
- Resize/compress: native
<canvas>+canvas.toBlob(), no libraries - Batch download: a small pure-JS ZIP writer bundles results into one file — no dependencies
- Nothing is sent over the network; check the DevTools Network tab while using it and it stays empty
MIT — see LICENSE.
Feedback and PRs welcome.

