Skip to content

Image Compressor

Upload an image, pick JPEG or WebP output, and drag the quality slider — the original and compressed file sizes are shown side by side so the trade-off is visible before downloading, instead of guessing at a percentage.

  • JPEG or WebP output
  • Live quality slider with before/after file size
  • No fixed target size — you see the real trade-off
  • Works with any image format the browser can decode
  • Runs fully client-side, nothing uploaded

Compressor

Compressed locally, the image never uploads

How to compress an image

  1. 01

    Upload an image

    Drop it in or click to choose a file.

  2. 02

    Pick a format and quality

    JPEG or WebP, with a quality slider from 10% to 100%.

  3. 03

    Compare and download

    Original and compressed sizes are shown side by side.

Why there is no "compress to exactly 50KB" mode#

Promising an exact target file size would require re-encoding at multiple quality levels and guessing which one lands closest — an approximation dressed up as a guarantee. This tool instead shows the real trade-off live: drag the slider, see both file sizes update immediately, and pick the quality where the size is acceptable and the image still looks right.

JPEG versus WebP#

WebP typically produces a smaller file at the same visual quality than JPEG, and is supported by every current browser — but some older tools and CMSs still expect JPEG specifically. Both are offered so the choice matches where the image is actually going, rather than defaulting to whichever format happens to compress better in the abstract.

Frequently asked questions

Can I compress a PNG here?

You can upload a PNG, but the output is JPEG or WebP — PNG is a lossless format with no quality slider to tune, so compressing it meaningfully means converting to a lossy format.

Why is the compressed size an estimate calculated from a data URL?

The size is calculated from the actual encoded output the browser produces (via canvas.toBlob), converted from its base64 representation — it reflects the real compressed size, not a guess.

Is the image uploaded anywhere?

No. Compression happens entirely in your browser using the Canvas API.

Developers

UUID Generator

Generate cryptographically random UUID v4 or time-ordered UUID v7, in bulk.

Developers

Base64 Encoder & Decoder

Encode and decode Base64 with correct UTF-8 handling, including the URL-safe alphabet.

Developers

ULID Generator

Generate ULIDs — sortable by creation time like UUID v7, but Crockford Base32 instead of hex.