Image compressor — squeeze JPG/PNG/WebP without server upload, with quality slider, batch mode, file size comparison.
- Runs locally
- Category Generator
- Best for Starting from a blank page without committing to the first result.
100% local. Nothing leaves your browser.
What this tool does
A 100% in-browser image compressor that re-encodes JPG, PNG, WebP, or AVIF straight from your tab — nothing is ever uploaded. Drag in up to ten photos at once, drag the quality slider between 60 and 95, optionally pick a different output format (JPEG for photos, WebP for the web, AVIF where the browser supports it, PNG if you need it lossless), and a Canvas + `toBlob` pipeline re-encodes each file locally. Every row shows the original size, the new size, the percent saved, and a side-by-side thumbnail so you can spot any visible degradation before downloading. Save one image at a time, or click `Download all` to get a zip stitched together with the browser's native CompressionStream — no external library, ~25 KB of JavaScript total. Works offline once the page is cached, and is a real privacy-first alternative when you cannot send a screenshot through somebody else's server.
Tool details
- Input
- Files + Numbers
- The page exposes text boxes, numeric controls, file pickers, or structured inputs depending on the tool.
- Output
- Live result + Download + Preview
- The result area focuses on usable output, with copy, download, or preview actions when supported.
- Privacy
- Browser-side processing
- The main tool logic does not call an external API, so inputs normally stay in the current tab.
- Save / share
- No account required
- Open the page and use it; whether results survive refresh depends on the tool.
- Performance budget
- Initial JS <= 25 KB
- No WASM budget is declared, keeping the tool quick to open on mobile.
- Best fit
- Generator · Designer
- Category and role tags drive related tools, internal links, and quick fit checks.
How to use
-
1. Input
Paste or drop your content into the tool panel.
-
2. Process
Click the button. All processing is local in your browser.
-
3. Copy / Download
Copy the result or download to disk in one click.
How Image Compressor (Local) fits into your work
Use it to get a strong first draft, starter asset, or structured output that you can edit before publishing.
Generation jobs
- Starting from a blank page without committing to the first result.
- Creating repeatable drafts, names, templates, or placeholder assets.
- Exploring options before choosing the one that fits the job.
Generation checks
- Review generated output before it reaches a customer, page, or document.
- Change defaults when you need a specific brand voice, format, or audience.
- Keep only the parts that match the real task.
Good next steps
These links move the current task into a more complete workflow.
- 1 Image Target Size Compressor Compress one image to a target KB size locally with quality search, automatic downscaling, preview, and download. Open
- 2 Base64 Image Converter Image ⇄ Base64 — drag-drop PNG/JPG/WebP/SVG, get data URI for CSS / HTML / Markdown. Open
- 3 Favicon Generator Generate favicon set — text or upload, output 16x16 / 32x32 / 180x180 / 512x512 PNG. Open
Real-world use cases
Cut blog post hero images before publishing
You exported a hero at 4032×3024 / 6 MB straight from your camera roll. Drop it in, switch to WebP at quality 80, drag the long edge down to 1600 — the row shows "6.1 MB → 380 KB, –94%". Download, push to the repo, your post still loads under a second on 4G. No EXIF leaks GPS to anyone scraping your blog.
Shrink screenshots before pasting into a Slack thread
Mac screenshots are PNG by default and routinely weigh 3-5 MB. Drag a screenshot in, re-encode as WebP quality 85, paste the result. The team gets the same readable shot at 200 KB and your Slack workspace storage quota stops melting.
Batch-prep product photos for an Etsy / Shopify listing
Drop in 8 photos at once. Quality 82, output JPEG, max edge 2000 (Shopify's sweet spot). The thumbnail row shows the size delta per file so you can spot the one weird PNG you accidentally included. Download all at once, upload to the store, done in under two minutes.
Compress phone photos before emailing a friend
Your aunt's inbox can't handle a 35 MB photo dump from a wedding. Drop in twelve photos, quality 80, JPEG, keep the original dimensions. The same album comes out around 6 MB total and her old Outlook will actually accept the attachment.
Re-encode PNG receipts before stashing in a personal archive
A folder of 200 PNG receipts from a year of business expenses eats GB of cloud storage for nothing — most receipts are flat color and re-encode beautifully as WebP. Run them through, save back, you reclaim 70-80% of the folder. EXIF stripping is a bonus: nobody downstream needs the GPS where you bought the coffee.
Common pitfalls
Re-compressing the same JPEG twice. Each pass at quality 80 drops detail you can't get back; pick the quality once and keep the original somewhere if you might need a do-over.
Forcing PNG output for photos. PNG is lossless, so a photo PNG stays huge — convert to WebP or JPEG instead, the tool will tell you the size delta.
Forgetting that re-encoding strips EXIF on purpose. If you needed the GPS / camera model for an archive, keep an unprocessed copy before running the file through.
Privacy
Every file is read with FileReader, painted onto an off-screen canvas and re-encoded via canvas.toBlob() — all inside your tab. Network request count stays at zero while you compress; verify in DevTools. EXIF metadata (including GPS and camera serial) is dropped during re-encoding, which is what you want for anything you're posting online.
FAQ
Tool combos
Folks in your role tend to reach for these alongside this tool.
- ASCII Art Generator Generate ASCII art from text — figlet-style banners, multiple fonts.
- Aspect Ratio Calculator Calculate aspect ratio — fix any 1 of [width, height, ratio], get the other two.
- Base64 Encoder & Decoder Encode or decode Base64 — text, files, and Data URLs. Runs entirely in your browser.
- Base64 to File Converter Paste raw Base64 or a data URL, decode it locally, inspect bytes, and download the reconstructed file.