Compressing images one at a time is a productivity trap. Whether you're a photographer culling 200 shots from a shoot, a developer preparing assets for a web project, or an e-commerce manager uploading new products, compressing one image at a time wastes hours every week.
| Method | Max Images | Setup Required | Privacy | Best For |
|---|---|---|---|---|
| ImgMin (browser) | 10 at once | None | ✓ Local only | Quick batches, sensitive images |
| Mac Preview | Unlimited | None (built-in) | ✓ Local only | Mac users, occasional use |
| ImageMagick (CLI) | Unlimited | Install required | ✓ Local only | Power users, automation |
| Sharp (Node.js) | Unlimited | Dev environment | ✓ Local only | Developers, CI/CD pipelines |
| TinyPNG API | 500/month free | API key | Server upload | High-volume, server-side workflows |
| iLoveIMG | Batch (limited free) | None | Server upload | Occasional large batches |
Drop up to 10 images onto ImgMin at once. The tool compresses all of them simultaneously using your browser's Canvas API and packages them into a ZIP file for download. Zero server upload — all processing happens on your machine.
How to use:
Processing takes under 5 seconds for 10 images. No account required, no monthly limit, no cost.
Mac users can batch compress images without installing any software using the built-in Preview app:
Preview exports and compresses all selected images in one operation. You can typically achieve 50–70% file size reduction this way with no visible quality difference.
ImageMagick is the gold standard for bulk image processing. It's free, cross-platform, and can handle thousands of images in a single command:
# Install on Mac
brew install imagemagick
# Compress all JPEGs in current folder to 80% quality
mogrify -quality 80 *.jpg
# Compress all PNGs (lossless optimization)
mogrify -strip *.png
# Batch compress + resize to max 1200px wide
mogrify -resize 1200x1200\> -quality 80 *.jpg
# Convert all PNGs to WebP
mogrify -format webp -quality 85 *.png
mogrify overwrites files in place. Always work on a copy, or use convert input.jpg -quality 80 output-compressed.jpg for a single-file non-destructive workflow.
If you're a developer, Sharp is the fastest Node.js image processing library and the right choice for automated pipelines:
const sharp = require('sharp');
const glob = require('glob');
const path = require('path');
// Batch compress all JPEGs in /input to /output
glob('input/*.{jpg,jpeg}', (err, files) => {
files.forEach(file => {
const output = path.join('output', path.basename(file));
sharp(file)
.jpeg({ quality: 80, mozjpeg: true })
.toFile(output);
});
});
// Batch convert PNG to WebP
glob('input/*.png', (err, files) => {
files.forEach(file => {
const output = path.join('output', path.basename(file, '.png') + '.webp');
sharp(file)
.webp({ quality: 85 })
.toFile(output);
});
});
Sharp uses libvips under the hood and is typically 4–5× faster than ImageMagick for batch processing. It's the recommended choice for CMS image pipelines and CI/CD workflows.
FFmpeg, primarily known for video, is also an excellent batch image processor — especially for converting animated GIFs to WebP:
# Convert all GIFs to animated WebP
for f in *.gif; do ffmpeg -i "$f" "${f%.gif}.webp"; done
# Batch resize + JPEG compress
for f in *.jpg; do
ffmpeg -i "$f" -vf scale=1200:-1 -q:v 4 "compressed/${f}"
done
Windows users have a few built-in options:
For web projects, the best approach is automatic compression as part of your build process so no image ever goes unoptimized:
vite-plugin-imagemin or image-webpack-loader to compress images at build timecalibreapp/image-actions step to compress images on every PR automaticallycalibreapp/image-actions to your repo's CI workflow. Every time a PR adds or modifies images, it will automatically compress them and commit the optimized versions — zero manual work required.
ImgMin is the fastest free browser option for up to 10 images — no upload, no account, instant ZIP download. For larger batches, use ImageMagick (CLI) or Sharp (Node.js). Mac users can use Preview's built-in Export Selected Images feature.
Yes. JPEG at 80% quality or WebP at 85% quality reduces file size 50–70% with no perceptible quality difference at normal viewing sizes. Lossless PNG compression achieves 20–30% reduction with zero quality loss.
Open all images in Preview, select all (Cmd+A), go to File → Export Selected Images, choose JPEG format at 80% quality. Compresses and exports all images in one step — no extra software needed. For up to 10 images, ImgMin in your browser works too.
Drop multiple images, get a compressed ZIP instantly. No upload, no account, no limits.
Try Batch Compression →Last updated: April 2026. Tool features and API limits may change — verify on each tool's official documentation.