Image Compressor
Free web tool: Image Compressor
Drop image files here, or
Choose filesJPG, PNG, WebP images (max 50MB each, multiple files supported)
About Image Compressor
The Batch Image Compressor is a browser-based tool that reduces multiple image file sizes simultaneously using the HTML5 Canvas API's toBlob() method with JPEG encoding. Upload multiple JPG, PNG, and WebP files up to 50MB each via drag-and-drop or file picker, then compress them all at once with a single click. Each image is loaded into an Image element, drawn onto an offscreen Canvas at its original naturalWidth and naturalHeight, then re-encoded as a JPEG blob with a user-specified quality parameter ranging from 1% to 100%.
The tool provides a before/after comparison for every image: the original and compressed versions are displayed side by side with file size labels, making it easy to visually assess quality loss at different compression levels. A compression ratio bar and percentage savings indicator show exactly how much space each image saved. An overall statistics panel aggregates total original size, total compressed size, and total savings across all processed images.
Batch mode lets you upload and compress dozens of images in a single session. Each compressed file can be downloaded individually with a "_compressed" suffix, or you can use the "Download All" button to save all compressed images at once. All processing happens entirely in the browser using Canvas APIs — no image data is ever uploaded to a server.
Key Features
- Batch upload: drag-and-drop or select multiple images at once, add more files at any time
- JPEG compression via HTML5 Canvas toBlob() with quality parameter from 1% to 100%
- Before/after side-by-side comparison showing original and compressed image previews
- Per-image compression ratio with percentage savings and visual progress bar
- Overall statistics panel: total files, total original size, total compressed size, total savings
- Individual download buttons per image and "Download All" for batch export
- Supports JPG, PNG, WebP input formats up to 50MB per file
- 100% client-side processing using Canvas API — no server upload, no data leaves your browser
- Remove individual images or clear all with dedicated controls
- Preserves original image dimensions (naturalWidth x naturalHeight) during compression
Frequently Asked Questions
How does the batch image compression work?
Each uploaded image is loaded into an HTML Image element, drawn onto an offscreen Canvas at the image's original resolution, then re-encoded as JPEG using canvas.toBlob() with your chosen quality parameter (1%-100%). Images are processed sequentially to avoid memory issues, and each one gets its own before/after preview and compression statistics.
How many images can I compress at once?
There is no hard limit on the number of images. However, since all processing happens in the browser, the practical limit depends on your device's available memory. Each image creates two blob URLs (original and compressed), so very large batches of high-resolution images may consume significant RAM. For best results, process batches of 10-20 images at a time.
What does the quality slider do?
The quality slider controls the JPEG compression level from 1% (maximum compression, smallest file, most artifacts) to 100% (minimum compression, largest file, best quality). For web use, 60-80% typically offers a good balance. The slider applies to all images when you click "Compress All" — you can adjust it and re-compress as many times as you want.
What is the before/after comparison?
After compression, each image shows the original and compressed versions side by side. The "Before" panel displays the original image with its file size, while the "After" panel shows the compressed JPEG with its reduced size. This lets you visually assess whether the compression level preserves acceptable quality for your use case.
What is the compression ratio percentage?
The compression ratio shows how much the file size decreased (or increased) compared to the original. A value like "-65%" means the compressed file is 65% smaller than the original. A "+" value means the JPEG encoding actually produced a larger file, which can happen with already-compressed images or at very high quality settings.
Can I download all compressed images at once?
Yes. After compressing, a "Download All" button appears that triggers individual downloads for each compressed image. Each file is saved with "_compressed" appended to the original filename. Note that browsers may prompt you to allow multiple downloads.
Is my image data sent to any server?
No. All processing happens entirely within your web browser using the Canvas API. Images are read as local blob URLs, drawn to Canvas elements, and re-encoded to JPEG — all in browser memory. No image data is transmitted over the network.
What image formats are supported?
The tool accepts any image format your browser can display: JPG/JPEG, PNG, WebP, BMP, GIF, and more. The compressed output is always JPEG. PNG images with transparency will lose their alpha channel (transparent areas become white). Each file can be up to 50MB.