PixelShrinkr

Compress and resize images in bulk. In your browser.

Drop a folder of JPEG, PNG, WebP or AVIF files. Each one is decoded, resized and re-encoded on this device by a pool of Web Workers. Nothing is uploaded and there is no account to make.

0%
saved
0 B→0 B

Drop images here, or

JPEG, PNG, WebP, GIF, BMP and AVIF. Pasting from the clipboard works too.

Processed on this device. Your files never leave the browser — close the tab and nothing remains anywhere.

What you get

100+files in one batch

Drop a whole folder or a hundred photos at once. Up to four Web Workers encode in parallel, so the page stays responsive while the queue drains.

4output formats

JPEG, PNG, WebP and AVIF. Keep each file's original format or convert everything in one go. AVIF is offered only where your browser can actually encode it.

Fit under a target size

Need every image under 200 KB? Set the target and PixelShrinkr searches for the highest quality that fits, then downscales in steps if it still does not.

0uploads, accounts or trackers

Files are read with the File API and written back with the Canvas API, all inside the tab. Turn off Wi-Fi after the page loads and it keeps working.

How it works

PixelShrinkr is a batch image compressor and resizer that runs entirely in the browser. Add JPEG, PNG, WebP, GIF, BMP or AVIF files by dropping them, picking a folder or pasting from the clipboard. Each file is decoded with createImageBitmap, which applies the EXIF orientation to the pixels, then drawn to a canvas at the size you chose and re-encoded with the browser's own JPEG, WebP or AVIF encoder. Because the work happens in Web Workers with OffscreenCanvas, a hundred photos can be processed while the page stays responsive, and the counter at the top shows exactly how many bytes you have saved.

The settings apply to the whole batch, and the file you select is shown in a draggable before/after comparison so you can judge the quality slider with your own eyes. Choose an output format or keep the original, cap the width and height, scale by percent, or ask for every file to fit under a size in kilobytes. Re-encoding through the canvas drops EXIF, GPS and other metadata by default; transparency in PNG and WebP is preserved unless you flatten it. Download files one by one or all together as a ZIP built in memory. Nothing you add here is ever sent to a server.

Guides & articles

Formats, compression and resizing, explained in plain language.

All guides

Frequently asked questions

Are my images uploaded anywhere?

No. Files are opened with the File API, decoded and re-encoded by your browser's own image codecs, and handed back to you as a download. There is no server to upload to, no account and no analytics script on the page. Load the page once, switch off your network, and the compressor keeps working exactly the same.

How many images can I process at once?

Hundreds. The queue is drained by up to four Web Workers in parallel, each one encoding a single image at a time on an OffscreenCanvas, so the page stays responsive while the batch runs. The real limit is memory: a few hundred ordinary photos are fine on a laptop, while 100-megapixel scans will run out of room much sooner. Files above roughly 80 megapixels are rejected with a message rather than crashing the tab.

Why is AVIF sometimes unavailable?

Because writing AVIF is not the same as reading it. Every current browser can display AVIF, but only Chromium-based ones (Chrome, Edge, Opera, Brave) can encode it through canvas. PixelShrinkr tests your browser on load by encoding a two-pixel canvas as AVIF; if that fails, the AVIF option is disabled and marked as unavailable instead of silently producing a JPEG. Firefox and Safari can still read your AVIF sources — they will just be written out as WebP or JPEG.

Does compressing remove EXIF and GPS data?

Yes, by default. The image is drawn onto a canvas and encoded from those pixels, so EXIF, GPS coordinates, camera model, timestamps and colour profiles are simply not carried over. The rotation stored in the EXIF orientation tag is applied to the pixels first, so the photo still comes out the right way up. If you turn "strip metadata" off, the original EXIF block is copied into JPEG-to-JPEG results with the orientation tag reset to 1 — every other format is always written clean.

Is transparency preserved?

It is, as long as the output format supports it. PNG, WebP and AVIF all carry an alpha channel, and "keep transparency" is on by default. JPEG has no alpha at all, so choosing JPEG for a logo flattens it onto white. When you keep the original format, a transparent source that would otherwise land in a format without alpha is written as PNG instead of being flattened behind your back.

What happens to animated GIFs?

Only the first frame survives. Browsers decode a GIF to a single still image through createImageBitmap, and canvas has no way to write an animated file back out, so an animated GIF becomes a static JPEG, PNG or WebP. Rows with a GIF source say so explicitly. If you need the animation kept, convert it to MP4 or animated WebP with a video tool instead.

Can I compress HEIC photos from my iPhone?

Only where the browser itself can decode HEIC, which in practice means Safari on recent Apple systems. PixelShrinkr uses no external decoder, so on Chrome, Edge or Firefox a .heic file fails with a message rather than a silent skip. The simplest fix is to make the phone hand you JPEGs: on iPhone open Settings, Camera, Formats and pick Most Compatible, or set "Transfer to Mac or PC" to Automatic so photos convert on export.

What does the quality number actually mean?

It is the quality argument passed to the browser's encoder, from 1 to 100, and it is not a percentage of anything. Each codec interprets it on its own scale, so WebP 75 and JPEG 75 do not throw away the same detail. For photographs, 75 to 85 is the range where files shrink a lot and the difference is hard to see; below 60 you start to notice blocking in skies and flat colour. PNG ignores the number entirely because it is lossless — to shrink a PNG, resize it or convert it to WebP.

Why did a file come out larger than the original?

Usually because the source was already compressed harder than your current settings. Re-encoding a JPEG that was saved at quality 60 with the slider at 90 adds bytes without adding detail, and converting a flat graphic or a screenshot to PNG can easily beat a lossy source in size. The row marks any result that grew and tells you what to change: lower the quality, resize, or pick WebP. Nothing is overwritten, so the original file on your disk is untouched either way.