← All tools

Image compressor

Shrink images to smaller files, with a live size comparison. Private — no upload

Click to choose or drag & drop images here

JPG, PNG, WebP, GIF · compress many at once

    How to use the image compressor

    1. Choose the output — JPG for maximum compatibility, or WebP, which is typically smaller at the same visual quality.
    2. Set the quality slider (30–95%; it starts at 75%, a sensible middle ground for photos). Lower means smaller files but more visible artifacts.
    3. Optionally cap the max width, e.g. 1920 px. Cutting pixel dimensions usually saves more than cutting quality — phone photos are often 4,000+ px wide.
    4. Drop in JPG, PNG, WebP or GIF files — several at once is fine; each one is compressed with the same settings.
    5. Every result shows original size → new size with the percentage saved. Download the ones you're happy with.

    Common uses

    • Get a photo under an upload cap — many forms, job portals and government sites reject anything over 1–2 MB.
    • Shrink a batch of vacation photos before emailing them; most mail providers cap attachments around 25 MB.
    • Cut page weight: compress hero and product images to WebP before uploading them to your site or CMS.
    • Turn heavyweight PNG screenshots into far smaller JPG or WebP copies for docs, tickets and chat.
    • Prepare marketplace listing photos (eBay, Etsy, Facebook Marketplace) that load fast without visibly losing detail.

    Tips & limitations

    • Quality 60–80% is the sweet spot for photographs; below about 50% you'll start to see blockiness and smeared detail, especially around edges and text.
    • PNG input is welcome but output is always lossy JPG or WebP — that's the point of this tool. If you need a lossless PNG (or HEIC input, or an ICO), use the image converter instead.
    • Transparency survives in WebP output, but JPG has none — transparent areas are flattened onto white. Animated GIFs come out as a still of the first frame.
    • Occasionally the result is bigger than the original (shown as a +%). That happens when the source was already tightly optimized, or your quality setting is higher than the source's — keep the original in that case.

    How it's built & why it's safe

    Everything runs in your browser: the image is decoded from a local object URL, redrawn onto an HTML Canvas (downscaled first if you set a max width), and re-encoded with canvas.toBlob at your chosen quality. The before-and-after sizes are compared locally to show the savings. There's no server-side processing, no account and no queue — your photos are never uploaded, so it's fine to compress private pictures.

    Related tools: Image Converter · Image Resizer · Image to Base64

    Further reading: How to compress images for the web without losing quality · PNG, JPG, WebP or HEIC? How to choose an image format

    Frequently asked questions

    How does the compression work?

    It re-encodes your image at the quality you choose, optionally scaling it down to a maximum width first. Both moves are lossy — detail your eye barely notices is discarded, and that's where the size savings come from.

    Should I pick JPG or WebP?

    WebP is usually 20–30% smaller than JPG at comparable quality, and it keeps transparency. JPG's advantage is universal support — every app, device and website accepts it. When in doubt: WebP for the web, JPG for everything else.

    What quality setting should I use?

    The 75% default is a good balance for photos. Go up to 85–95% for images with fine text or sharp edges, and down toward 50–60% when small size matters more than close inspection.

    Why did my file get bigger instead of smaller?

    If the source was already heavily compressed, re-encoding it at a higher quality than it currently has can add bytes rather than remove them. The result row shows a +% in that case — keep your original file.

    Will my photos be uploaded?

    No. Decoding, resizing and re-encoding all happen in your browser's memory, so nothing is transmitted anywhere. Once the page has loaded, compression even works offline.

    Is there a limit on file size or count?

    There's no fixed limit — drop in as many images as you like and they're processed independently. Very large images are constrained only by your device's memory, since each one has to be decoded into RAM.