Skip to content

Compress Images Online Free

Shrink photos and screenshots in the browser. Real numbers, no upload, no watermark.

In your browseryour files never leave your device.

Learn more

About this tool

I built this because I got tired of dragging a 5MB phone photo through three different SaaS compressors just to get a copy I could attach to an email. The whole thing runs on the Canvas API in your browser. Pick a quality, optionally resize, choose JPEG / PNG / WebP / AVIF, and the file shrinks locally. A 5MB JPEG out of a modern phone usually lands around 800KB at quality 75 with no visible difference at screen sizes. WebP gets you another 25-30% on top of that if the destination accepts it, and AVIF (where the browser supports encoding it — Chrome 93+, Firefox 113+, not Safari) typically saves a further 20% on top of WebP for photographic content. Nothing leaves the device.

How to compress images online free

  1. Drop your image in

    JPEG, PNG, or WebP, from your camera roll, screenshots folder, or wherever. Click the dashed box or drag the file directly onto it.

  2. Pick a target format

    WebP gives the smallest output and works in every modern browser. JPEG is the safest choice if you need to share with someone on a legacy system. PNG keeps an alpha channel if your image has transparency.

  3. Slide the quality knob

    I usually park it around 75 for photos and 90 for screenshots that contain text. Below 60, you start seeing JPEG artifacts on faces and gradients. The Max Width field lets you downsize too — set it to 1920 for web use and you will rarely notice the difference.

  4. Download

    The before-and-after panel shows you exactly how much you saved. If it didn't shrink as much as you wanted, hit Recompress with a tighter quality setting.

Why use this tool

Three situations come up over and over. First, email attachments. Gmail caps at 25MB, Outlook at 20MB, and three vacation photos plus a PDF will blow past that easily — compress first and the email goes through. Second, getting under a CMS or marketplace size cap. WordPress, Etsy, eBay, and most ad platforms reject above a few MB per image, and a quick pass through here gets you under the threshold without giving up resolution. Third, page-speed work. If you are uploading hero images to your own site, every kilobyte you save translates to a faster Largest Contentful Paint score on PageSpeed Insights, which actually moves rankings. The slider lets you eyeball where quality starts breaking down before you commit.

Features

Real benchmark numbers

On a batch of 23 vacation photos averaging 4.2MB each, default settings (quality 80, WebP, max width 1920) brought the average to 410KB — about 90% off. Screenshots with lots of solid color shrink even harder. PNGs of photos almost always benefit from re-encoding to WebP or JPEG since PNG is a terrible format for photographic content.

Pure browser, nothing uploads

The compression runs through Canvas and the browser's native encoders. Open the Network tab and watch — there are zero outbound requests when you compress. This was the whole point of building it. You can use it on a corporate machine where SaaS compressors are blocked, and you can use it on a confidential design file without worrying about a third party caching it.

Quality slider with live preview

Move the slider from 10 to 100 and the file recompresses. The before/after panel updates so you can see exactly where the savings stop being worth the visual cost. Most photos plateau around quality 75 — going lower saves less and less while looking worse and worse. Screenshots tolerate lower quality because they have fewer gradients.

Four formats, each tuned to its job

WebP for the smallest file and best modern-browser support. JPEG for compatibility with anything that opens images. PNG when you need a transparent background or pixel-perfect output. AVIF for the absolute smallest size on photographic content — typically 20% smaller than WebP — but only when your browser supports encoding it (Chrome 93+, Firefox 113+; Safari can read AVIF but can't encode it yet, so the option is hidden when you visit on Safari). The tool defaults to WebP because that is what you want 80% of the time, but the dropdown switches in one click.

Privacy & security

Compression rides entirely on the Canvas API and the browser's built-in JPEG, WebP, and AVIF encoders — the same encoders Chrome and Firefox use when a website saves an image to disk. Your photo is decoded into a canvas, the canvas is re-encoded at the quality you picked, and the output blob is handed back as a download. The before/after comparison slider that lets you check whether the compression was too aggressive is also a pure-canvas overlay running on your device. We do not see the source image or the compressed one.

Frequently asked questions

Is there a catch? No daily limit, no signup, no watermark?
None of those. The tool is a static page plus some JavaScript. There is no backend, no account, no usage tracking. The only "cost" is the few seconds of CPU on your own device while it encodes the file. I pay for the domain and Cloudflare Pages hosting out of pocket because the running cost is basically zero — there is no per-user infrastructure to scale.
Are images actually uploaded anywhere?
No. You can verify this yourself: open your browser's DevTools, switch to the Network tab, drop an image in, and watch nothing happen. The page already has the code it needs. The Canvas API does the encoding, the FileReader API loads the file from disk, and the resulting blob stays in memory until you download it. Closing the tab discards everything.
Which formats can I input and output?
Input: JPEG, PNG, WebP, AVIF, plus most other browser-readable formats like BMP and GIF (single frame). Output: JPEG, PNG, WebP, and AVIF (only on browsers that can encode it — Chrome 93+ and Firefox 113+ today; Safari can read AVIF but can't encode it yet, so the option is hidden when you visit from Safari). JPEG, WebP, and AVIF are lossy and have a quality slider. PNG is lossless — it does not shrink as much, but the output is byte-for-byte identical pixel data to the input.
Will it work for my website or CMS?
That is the most common use case. Compress before uploading to WordPress, Ghost, Webflow, Shopify, or whatever you run. Smaller images mean faster Largest Contentful Paint and better Core Web Vitals scores. If your site uses an image CDN that further compresses on delivery, my output is the source — you still want it small.
Will the image get blurry?
Only if you push the slider too hard. Compression preserves resolution — it just stores the pixel data more efficiently by throwing away detail the human eye is bad at noticing. Default settings (quality 80) keep photos crisp at any size you would view them. If you drop to quality 30, you will see blocking around edges and color banding in skies. The preview tells you before you commit.
Does it work on mobile?
Tested on iOS Safari, Chrome on Android, Firefox mobile, and a few older tablets. The bottleneck is RAM — a 30MP raw file from a Pixel will be slow on a 3GB phone. For most snapshot-style photos under 10MB, performance is fine. Mobile actually handles WebP better than some older desktop browsers since the codec is built into the OS-level image stack.
Is there a file size limit?
No hard cap, but practical limits kick in around 50MB per file because everything runs in your browser tab. Above that, the tab can run out of memory and crash, depending on your device. The sweet spot for snappy processing is 20MB and below. If you have a 100MB raw image, downsize the dimensions first (or convert to JPEG with a different tool) before running it through here.
Does PNG benefit from this tool at all?
Sometimes. PNG is lossless, so re-encoding does not shrink it like JPEG. But: if the source PNG was saved by a tool that did not optimize the compression dictionary, re-encoding through the browser can knock 10-20% off. The bigger win is converting photographic PNGs to WebP or JPEG — PNG is a bad format for photos and you usually save 80%+ by switching formats.