Compress images. Smaller files, in your browser.
Smaller files, private by default.
No accounts, no API keys, no usage limits — just a browser and the codecs behind Google Squoosh.
100% private
Your images never leave your device. No uploads, no servers, no tracking.
Production WASM codecs
MozJPEG, OxiPNG, libwebp and libavif — the professional C encoders behind Google Squoosh, compiled to WebAssembly, with Lanczos3 resampling.
Batch and convert
Compress dozens of images at once, convert between JPEG, PNG, WebP and AVIF, and download the whole batch as a single ZIP.
EXIF stripped
Resize by long edge, width, height or percentage, hit a target file size in KB, and strip EXIF/GPS metadata automatically.
Add files, set quality, download.
- 01
Add your images
Drag and drop, paste from the clipboard, or browse. Batch as many files as you like.
- 02
Pick format and quality
Pick a format, set quality or a target file size, and optionally resize — then fine-tune any image individually in the before/after view.
- 03
Download
Download files one by one or as one ZIP, with per-file savings shown. Everything stays on your device.
About the image compressor
This is a free image compressor that shrinks JPEG, PNG, WebP, and AVIF files directly in your browser. It is built for anyone who needs smaller images before uploading to a website, attaching to an email, or publishing a storefront — bloggers, developers, photographers, e-commerce sellers, and anyone hitting a platform’s file-size limit. Batch processing is included, so you can drop in an entire folder of photos instead of compressing them one at a time.
It pairs the codec stack behind Google Squoosh with a batch workflow: automatic compression on drop, a draggable before/after comparison view with zoom to individual pixels, per-image quality overrides, exact resizing, a target-file-size mode, and one-click ZIP export for the whole queue. The free tier processes up to 50 images per batch with no per-file size cap and no monthly counter; Pro raises the batch to 500.
How it works
The tool uses the same open-source codecs that cloud services use — MozJPEG, libwebp, libavif, and OxiPNG — compiled to WebAssembly. PNG files are first encoded and then passed through a dedicated OxiPNG optimization pass, which is what makes lossless screenshot and logo results competitive with TinyPNG; the two passes are compared and the smaller bytes win. The codec runs in your tab on your device’s CPU: images are decoded, optionally resampled, re-encoded at your chosen settings, and saved straight to disk.
Three compression efforts map to each encoder’s CPU-intensive options. Maximum turns on MozJPEG Trellis quantization and optimal Huffman scans, raises libwebp’s method and pass count, slows AVIF encoding down to its deepest search, and runs OxiPNG at a higher level. Balanced is the default and the best everyday trade-off; Fast exists for quickly clearing a large folder on a low-powered laptop.
Before / after comparison studio
Click any finished image to open a full-screen comparison. A draggable divider shows the original on the left and the compressed result on the right, with live file-size badges and a saving percentage. Zoom to 100% and pan to inspect pixels the way you would in Squoosh; the scroll wheel and double-click toggle between fit and actual size.
The bottom dock re-encodes the image live as you change format, quality or effort — usually within a few hundred milliseconds after you stop moving the slider. Apply tunes one image only (it gets a pinned “custom” marker and is left untouched by later global changes), while Use for all images promotes the same settings to the entire queue. This covers the Optimizilla-style workflow where one noisy photograph in a folder needs a higher quality than the rest.
Resizing and target file size
Resizing uses the Lanczos3 filter from the Squoosh resize engine rather than the browser’s default scaler, so downscaled photos stay noticeably sharper. You can cap the long edge, set an exact output width or height, or scale by percentage — dimensions are always rounded to whole pixels and the aspect ratio is never distorted. Transparent PNGs converted to JPEG are composited onto white, because JPEG has no alpha channel.
Target size mode compresses toward a KB value you choose. WebP reaches it in a single encode thanks to libwebp’s built-in constant-quality mode; JPEG and AVIF instead run a short quality search, returning the highest-quality result whose bytes are under your target and flagging a file that cannot meet it even at the floor quality. A “keep smaller file” switch (on by default) guarantees output is never larger than the source: if a re-encode cannot beat the original, you get the original bytes back.
Batch, formats and export
Inputs accepted are JPG, PNG, WebP, AVIF, GIF (first frame), BMP and TIFF; output is Auto (the same sensible codec per source), JPEG, PNG, WebP, or AVIF. The queue is processed one image at a time, because one WASM encoder already saturates a CPU core and parallel encoding is the quickest way to crash a browser tab. You can cancel a run, change settings, and stale results re-compress automatically; failed images can be retried or removed individually. The Download ZIP button packs every result using a zero-compression ZIP store — JPEG, PNG, WebP, and AVIF bytes are already compressed, so deflate would add CPU for no saving.
Limits & requirements
Any modern browser works; no WebGPU or model download is needed, though the first encode of each format downloads its WASM codec once from a CDN and caches it afterward. AVIF at Maximum effort on multi-megapixel photos can take tens of seconds per image; Balanced is a fraction of that. There is no per-file size cap and no monthly quota, because nothing is uploaded and there is no server to meter — the only tier difference is queue depth (50 free, 500 Pro). Lossy output can never be restored to the original quality, so keep an uncompressed copy if you may need to re-export later.
Privacy
Your photos never leave your computer — there is no server in the pipeline. Drawing pixels through the encoder discards all EXIF, IPTC, and XMP metadata, including embedded GPS coordinates and camera serial numbers, which is often as much of a privacy win as the size reduction itself.