Image Compressor

Free image compressor: bulk-shrink photos, convert to JPG, WebP or PNG, resize and download as ZIP. No sign-up, and images never leave your browser.

  • Batch compression
  • Convert to WebP/JPG
  • Resize by longest side
  • No uploads

🔒 Everything is calculated in your browser. No data is sent to any server.

When to use it

  • Websites and blogs: Shrink camera or phone photos to 1920 px and convert them to WebP so pages load faster.
  • Uploads with size limits: Compress first when an application form, government portal or online store dashboard limits file size.
  • Email and messaging apps: Compress several photos at once and download them as a ZIP to send faster.
  • Freeing up phone or cloud storage: Batch-shrink old photos to save space while keeping them looking good.

How to use

  1. Click "Choose images" or drag images onto the dashed box; you can add many at once. Each one shows a thumbnail with its size before and after.
  2. Pick an output format (JPG, WebP or PNG) and set the quality slider. To downsize, enter a pixel value in "Max longest side", such as 1920. Every image is reprocessed automatically when you change a setting.
  3. Click "Download" on any image, or "Download all (ZIP)" to get them in one file. Click "Clear" to start over.

Worked example

A 4032×3024 phone photo of 3,500,000 bytes, exported as JPG at quality 80 with the longest side capped at 1920. The image is scaled proportionally to 1920×1440. If the browser encodes it to 420,000 bytes, the card shows "3.34 MB → 410.2 KB" and "88% smaller", meaning the new file is 12% of the original.

A PNG screenshot of 120,000 bytes (117.2 KB). Saved again as PNG at 156,000 bytes, it shows "117.2 KB → 152.3 KB" and "30% larger"; exported as WebP at 48,000 bytes, it shows "117.2 KB → 46.9 KB" and "60% smaller". Real output sizes depend on the image and the browser. The byte counts here are assumed, and the sizes and percentages are what the tool calculates from them.

A batch of three: 3.34 MB → 410.2 KB, 117.2 KB → 152.3 KB and 830.1 KB → 207.0 KB. The summary reads "3 images: 4.26 MB → 769.5 KB (82% smaller)". The total compares the summed bytes, not the average of the three percentages.

Reading the results

  • Green "N% smaller" means the new file is N% smaller than the original. Red "N% larger" means re-encoding made it bigger, which is common when an already small JPG is saved at high quality or a PNG is saved as PNG. In that case, keep the original.
  • Changes under 0.5% show as "<1%". An arrow in the dimensions line means the image was downsized; a single value means the size was kept.
  • "Your browser can't export this format, saved as PNG instead" means your browser (usually an older Safari) can't encode WebP, so the file was saved as PNG and its extension changed to match.
  • 1 KB is counted as 1024 bytes, the same as Windows File Explorer. macOS Finder counts 1000 bytes per KB, so its numbers differ slightly.

How it works

  • Decoding uses the browser's built-in createImageBitmap, which applies the photo's EXIF orientation. If that fails, the image is loaded through an <img> element instead (for example SVG).
  • Resizing: when the longest side exceeds the cap, width and height are both multiplied by cap ÷ longest side and rounded, with a minimum of 1 px. Images are only scaled down, never up, using the canvas's high-quality smoothing.
  • Encoding draws the image on a canvas and calls canvas.toBlob(format, quality), with quality 10–100 mapped to 0.1–1.0. JPG has no alpha channel, so transparent areas are filled with white first. PNG is lossless, so the quality setting does not apply.
  • Comparison: change % = |1 − new size ÷ original size| × 100, rounded to a whole number. The summary uses the total bytes of all successful images.
  • The ZIP is built in the browser with fflate. Images are already compressed, so they are stored without recompression, and duplicate names get -2, -3 so nothing is overwritten.

Limitations

  • Re-encoding removes EXIF data (capture time, GPS location, camera model) and color profiles, so don't use it when you need to keep them. Wide-gamut (Display P3) photos may shift slightly in color.
  • Animated GIF and WebP keep only the first frame. HEIC can only be read by browsers that support it, such as Safari; other browsers report that the image can't be read.
  • Results depend on each browser's built-in encoder, so the same settings give different sizes and quality in Chrome, Firefox and Safari. You also can't set a target such as "under 200 KB"; adjust the quality yourself.
  • Very large images can hit the browser's canvas size and memory limits (Safari on iPhone is especially strict) and fail to export. Set a longest-side cap and try again.

FAQ

What quality setting should I use?

For everyday photos, JPG or WebP at 70–80 looks practically identical to the original while being much smaller. Use 90 or higher for print or further editing. For screenshots with text and for charts, PNG or WebP stays sharper; JPG tends to add noise around text edges.

Why did my file get bigger?

If the original was already heavily compressed (for example a low-quality JPG), re-encoding it at a higher quality makes it larger. PNG to PNG often grows too, because the browser's built-in PNG encoder isn't heavily optimized. Lower the quality, switch to WebP, or just keep the original.

What happens to a transparent PNG converted to JPG?

JPG has no transparency, so transparent areas become white. Choose WebP or PNG to keep the transparent background.

Are my images uploaded?

No. Reading, compressing and zipping all happen in your browser. Images are never sent to a server or stored, and they disappear when you close the page.

How do I compress a photo to under 1 MB or 200 KB?

Set “Max longest side” to 1600–1920 and the quality to 70–80; if it’s still too big, lower the quality or size further. The compressed size of each image is shown, so you can adjust as you go.

Should I choose JPG or WebP?

At similar quality, WebP is usually about 25–35% smaller than JPG and works in all major browsers. For older systems, print, or upload forms that only accept JPG, JPG is the safer choice.

Is the photo’s EXIF data kept after compression?

No. Only the image itself is re-encoded; details such as when it was taken and its GPS location are removed, so shared photos are less likely to reveal where you were.

References