Image, Security & Utilities

Image Compressor

This image compressor re-encodes your photos with your browser’s built-in canvas at the quality you choose, so files get smaller without being uploaded anywhere. The saving is shown for each file as (original size − new size) ÷ original size, and if a result would be larger than the original, the original is kept.

Last updated Reviewed by ToolsPulse Hub

75%

70–80% suits most photos. Ignored for PNG output.

WebP is usually smallest and keeps transparency.

Files—
Total before—
Total after—
Saved—

No images yet. Your files never leave this device.

    How to use the image compressor

    1. Choose one or more JPG, PNG or WebP files, or drag them onto the box.
    2. Set the quality. Each file is compressed straight away, and the list shows its old size, new size and the percentage saved.
    3. Optionally pick WebP output, or a maximum width to shrink large camera photos for the web.
    4. Download files one by one, or press “Download all” to get a single ZIP.
    5. Change a setting and every image is processed again, so you can compare quickly.

    How the compression works

    Your browser decodes each image, draws it onto an off-screen canvas, and saves it again with canvas.toBlob(type, quality). For JPEG and WebP, the quality value controls how much fine detail the encoder discards. Lower quality means a smaller file and, eventually, visible blur and blocky edges.

    new file = canvas.toBlob(format, quality ÷ 100) saved = (original bytes − new bytes) ÷ original bytes resized = width × (max width ÷ width), height scaled the same way PNG output = lossless, so the quality slider has no effect

    Worked example

    We tested a 3000 × 2000 landscape photo saved at 92% JPEG quality. It starts at 2.26 MB. At the default 75% quality the tool produces a 867.4 KB JPEG, 62.4% smaller, at full resolution. Setting the maximum width to 1920 px as well brings it to 240.5 KB, an 89.6% saving.

    Sizes depend on the photo and on your browser’s encoder, so Chrome, Firefox and Safari can give slightly different results for the same settings.

    JPEG, PNG or WebP?

    Photos compress best as JPEG or WebP. WebP is often smaller than JPEG at the same visual quality, but not always: on our grainy test photo, WebP at 75% was larger than JPEG. Try both. PNG is lossless, which suits screenshots, logos and images with transparency, but re-saving a PNG rarely makes it much smaller. To shrink a PNG photo, convert it to WebP, which keeps transparency, or to JPEG, which fills transparent areas with white.

    Re-encoding through a canvas also removes metadata such as camera model and GPS location from JPEG files. That is helpful before sharing photos publicly.

    Key features

    • Batch compression with per-file and total savings.
    • Quality slider, WebP or JPEG output, and resizing presets from 800 px to 4K.
    • Keeps the original when compression would make a file bigger.
    • ZIP download for many files, built in the browser.
    • Automatically scales very large photos to fit Safari’s canvas limit of about 16.7 million pixels.

    Practical use cases

    Faster websites. Large images are a common reason pages load slowly and fail Core Web Vitals checks. Resizing photos to the width they are displayed at, often 1280 to 1920 px, makes the biggest difference.

    Email and forms. Many job portals, visa forms and email providers cap attachments, often at a few megabytes. Compress scans and photos to fit.

    Online shops. Product galleries load quicker with WebP images around 100 to 300 KB each, and shoppers on mobile data notice the difference.

    Frequently asked questions

    This tool runs entirely in your browser and is provided as-is. See our terms and privacy policy.