100% local · bulk convert

Shrink images in your browser

Bulk Image Optimizer compresses and converts JPG, PNG, WebP, GIF, and BMP files to modern WebP (or optimized JPEG/PNG) in parallel — no uploads, no sign-up, no tracking. Everything runs on your device.

WebP / JPEG / PNG Bulk ZIP output Quality control No uploads
Heads up: Your browser does not support WebP encoding. WebP output will fall back to PNG; JPEG and PNG output work normally. For WebP support, use Chrome, Firefox, Edge, or Safari 14+.
Browser-based: Could not load required libraries (JSZip / browser-image-compression) from CDN. ZIP download and library-based fallback are unavailable. Please reconnect to the internet and reload to enable all features.
Preparing… 0%
No files added yet.

How to use Image Optimizer

Four simple steps — your images are converted locally in your browser and never uploaded anywhere.

1

Add images

Click the dropzone to browse, or drag-and-drop multiple JPG, PNG, WebP, GIF, or BMP files. You can keep adding more files later.

2

Choose settings

Pick an output format (WebP, JPEG, or PNG), set a quality level, optional max dimension, and filename behavior on the right.

3

Click "Optimize all"

Files are processed in parallel (up to 4 at once) using the Canvas API. Each row updates live with new size and savings percentage.

4

Download results

Grab everything as a single .zip (preserving folder structure if you dropped a folder), download files individually, or use the per-file button.

Truly private

Images are decoded, resized, and re-encoded entirely in your browser. They never touch a server — verify it in your DevTools Network tab.

Parallel & fast

Up to 4 images are processed at once using the Canvas API. Most photos compress in under a second on a modern device.

Modern WebP

WebP produces files 25–35% smaller than JPEG at equivalent quality. Perfect for the web and supported by every modern browser.

Bulk ZIP export

Process hundreds of files and download them all as a single .zip — folder structure from dropped folders is preserved.

Full control

Choose format, quality (1–100), and max dimension. Per-file savings are color-coded so you can spot files that didn't shrink.

Open & free

Open source, MIT licensed, no watermarks, no sign-up, no rate limits. Built on JSZip and browser-image-compression.

Frequently asked questions

No. Bulk Image Optimizer runs entirely in your browser using JavaScript and the Canvas API. Your images are read into memory on your own device, decoded, resized, and re-encoded there — the result is offered as a download. They never touch any server. You can verify this by opening your browser's DevTools → Network tab; no image data is sent anywhere while you optimize.

WebP is a modern image format from Google that produces files 25–35% smaller than JPEG at equivalent visual quality, and supports transparency like PNG. It is now supported by Chrome, Firefox, Edge, Safari (14+), and all major mobile browsers. For maximum compatibility you can still output JPEG or PNG.

WebP decoding (displaying WebP images) is supported in all modern browsers. WebP encoding (creating WebP files via canvas) is supported in Chrome, Firefox, Edge, and Safari 14+. If your browser does not support WebP encoding, the app shows a banner at the top and WebP output falls back to PNG so you still get a usable file. JPEG and PNG output always work.

Canvas-based image processing strips EXIF metadata (camera model, GPS location, timestamps, orientation, etc.) by design. This is actually a privacy benefit — your location data is removed. The "Keep EXIF metadata" option is reserved for a future worker-based pipeline that re-injects metadata after encoding. If you need to preserve EXIF, use a desktop tool like ImageMagick or exiftool.

Animated GIFs are flattened to a single still frame (the first frame) when converted — animation is not preserved. BMP files are decoded and re-encoded in your chosen format, typically shrinking them by 90%+. If you need to preserve GIF animation, keep the original .gif or use a dedicated GIF optimizer.

There is no artificial limit. The only constraint is your device's available memory — very large images (over ~50 megapixels) or hundreds of files at once may slow down or fail on low-memory devices. The app processes up to 4 files in parallel to keep memory usage bounded.

This can happen when the original is already aggressively compressed (e.g., a tiny WebP or a well-optimized JPEG) and you re-encode at high quality, or when converting a lossy format to PNG (which is lossless and often larger). The app shows a red "bigger" badge so you can spot these. Lower the quality slider or stick with the original format to avoid this.

Yes. Use the per-file download button on each row (appears after processing), or click "Download individually" to trigger one download per file. Note: browsers usually block or prompt when many downloads start at once — allow them when prompted, or use the ZIP option for a single clean download.