ZeroTool Workbench
Image Compressor
Compress JPEG, PNG, and WebP images in your browser. Adjust quality, resize on the long edge, and shrink file size — 100% local, no upload.
How to Use
- Pick an output format: Keep original, JPEG, PNG, or WebP.
- Drag the Quality slider — 75 is a balanced default for photographic content.
- Optionally enable Resize long edge to and enter a target pixel value such as
1920. - Drop your images on the drop zone, or click to open the file picker.
- Each result card shows the original size, output size, dimensions, and a percentage delta.
- Click Download on a card, or Download All to save the batch.
Quality vs File Size
Quality controls the lossy compression rate for JPEG and WebP outputs. Numbers above 90 produce nearly transparent compression — file size stays high. Numbers below 60 introduce visible artefacts on smooth gradients and skin tones. Quality 75 is the working default used by most web build tools because it keeps photographs visually clean while cutting file size by 60–80% against an uncompressed JPEG straight from a phone camera.
Format Cheat Sheet
- JPEG — photographs, hero shots, anything with continuous tonal gradients. No transparency.
- PNG — UI screenshots, diagrams, anything with hard edges or transparency. Lossless.
- WebP — modern browsers everywhere; usually 25–35% smaller than JPEG or PNG at equal quality. Supports transparency.
- Keep original — useful when you just want to resize without converting formats.
Resize the Long Edge
Most web layouts max out around 1920 pixels wide. Retina (2× DPR) screens benefit from 2560–3840. When you set the long edge limit, the tool scales the shorter edge proportionally so aspect ratio is preserved. For thumbnails or social previews, try 1024 or 1440 px on the long edge.
Privacy: Nothing Is Uploaded
This tool uses createImageBitmap and the Canvas 2D API to decode and re-encode images entirely in your browser.
The compressed file is constructed locally by canvas.convertToBlob (or canvas.toBlob as a fallback) and served to you via a temporary blob URL.
There is no server endpoint involved — try it in airplane mode if you want to confirm.
Limits
- Maximum 50 MB per file (mobile browsers run out of memory on much larger inputs).
- Animated GIFs are flattened to the first frame by design — for animated GIF re-encoding, use
ffmpeglocally. - EXIF orientation is auto-applied: photos taken sideways come out the right way up.
Related Tools
- WebP Converter — when you specifically need PNG/JPG ⇄ WebP conversion with a simpler UI.
- SVG Optimizer — vector images cannot be raster-compressed; optimize SVG source instead.
- Image to Base64 — when you need to inline an image as a data URL.
FAQ
Are my images uploaded anywhere?
No. Every byte stays in your browser. The compression runs on Canvas 2D APIs locally, and the output file is created by your browser. ZeroTool never sees your images.
Which formats does it support?
Input: JPEG, PNG, WebP, and single-frame GIF (animated GIFs are flattened to the first frame by design). Output: JPEG, PNG, or WebP. For HEIC, TIFF, or RAW, use a local tool such as exiftool or ImageMagick — browsers cannot decode these formats. For SVG, use our SVG Optimizer instead.
Why is the quality slider disabled for PNG?
PNG is a lossless format — browsers do not accept a quality parameter when encoding PNG. To shrink a PNG with this tool, either resize its long edge or convert the output to JPEG / WebP. For deeper lossless PNG optimization, run a dedicated tool such as oxipng locally.
Why is my output sometimes larger than the input?
Re-encoding an already optimized image can grow it, especially when you switch a PNG screenshot to high-quality JPEG. The tool flags this with a red percentage so you can drop the larger output and keep the original.
Is there a file size limit?
Yes — 50 MB per file, to protect mobile browsers from running out of memory. There is no limit on total batch size, but very large batches will be slower.