Image Compressor

Global tools

A phone photo is 3 to 8 MB, a screenshot is 800 KB and a scanned receipt is 2 MB, which is more than most sites, forms and email providers will take. Compressing them normally means handing your pictures to a server you know nothing about - and photos are exactly the files people are most careful about, because they carry where they were taken.

Drag & drop files here, or .

Everything is processed in your browser - nothing is uploaded.

    Up to 20 pictures, 25 MB each. They are decoded and re-encoded in this browser tab and never uploaded.

    Lower quality means smaller files. 75% is invisible on a phone screen; 60% is fine for thumbnails.

    Downscaling is where most of the saving comes from. A picture that is already narrower keeps its own size.

    JPEG has no transparency, so see-through pixels get the color below put behind them.

    Re-encoding an already-optimized picture usually makes it bigger; this is the safeguard against that.

    Only used when the output format cannot store transparency.

    Leave blank to name each file after the picture it came from.

    Only used for the plan below, before pictures are chosen. The real job uses the files themselves.

    Results update as you type. Nothing leaves your device.

    Plan for 3 pictures

    75% quality, up to 1600 px wide

    Each picture is re-encoded in this browser tab as each picture in its own format and downloaded as its own file.

    Pictures per job
    up to 20
    Pixel width
    max 1600 px
    Output
    each picture in its own format
    If it does not shrink
    original kept

    What happens when you add pictures

    1. Each picture is read from your device - no upload, no queue, no account - and decoded by the browser you already have open.
    2. Pixels are scaled to up to 1600 px wide with area averaging, the filter that avoids the jagged edges a naive shrink produces.
    3. The result is re-encoded at 75% quality and then compared with the file you dropped in.
    4. If the new file is not smaller, your original file is handed back instead - under the same kind of name, unchanged.
    The plan above is what the settings say; the numbers come from your pictures once you add them. The first download would be named photo-compressed.jpg

    This page decodes and re-encodes your pictures in the browser tab you already have open. Nothing is uploaded, there is no account and no queue, the result is shown next to the original so you can judge it, and if the re-encode does not actually make a file smaller, you get your own file back instead.

    About this image compressor

    Pixels are what almost every compression dial really moves, and this page makes that visible: choose a target width and a quality, watch the size before and after for each picture, and get your original bytes back whenever the re-encode would not actually help, because re-encoding a file that is already optimized can come out larger.

    Size falls in exactly two ways: scaling down removes pixels nobody will ever see on a screen, and re-encoding at a lower quality spends fewer bits on the detail the eye is least sensitive to. The decode and the re-encode run on your own device, so no photograph, and no GPS tag inside it, is sent anywhere.

    A compressed picture is rebuilt from its pixels, so the GPS coordinates, camera model and timestamp are gone along with the size, a privacy gain for a photo headed online and an irreversible one if you expected them back. The Exif orientation flag is applied rather than dropped, so a portrait photo stays upright. What the page does is shrink a file honestly and say when it cannot.

    How this image compressor works

    Two levers, and only two

    Size comes down in exactly two ways. The first is pixels: a 4000-pixel-wide photo shown at 1600 pixels on a website is carrying detail nobody will ever see, and scaling it down removes about 84% of the pixels with no visible change. The second is quality: JPEG and WebP spend their bits on the detail the eye is least sensitive to, so re-encoding at 75% instead of 95% typically halves the file while looking the same on a screen.

    Both levers are on the form above, and the page reports what they did: the panel shows every picture with its size before and after, plus the pixel size that was written. Nothing hides behind a slider you cannot check.

    Scaling uses area averaging rather than picking every Nth pixel: each new pixel is the average of the block it covers, which is what keeps downscaled photographs and lettering from turning jagged. Enlarging is never done, because interpolation cannot add detail that was never photographed.

    Why "compressed" can sometimes come out larger

    JPEG quality is a request, not a promise. A file that came out of a camera, a design tool or another compressor has already had detail removed, and re-encoding it finds less to remove than the encoder spends on headers and a second round of quantization. Measured here on a photo that had already been optimized for the web, a re-encode at 92% came out about 40% larger than the input.

    That is why the tool always compares the file it made with the file you gave it, and why "hand my original file back" is the default: the download button then carries your own bytes, unchanged, and the result says so in plain words - "the re-encode came out at 900 KB, not smaller than the original 720 KB".

    The same honesty applies in the other direction: the pictures that shrink a lot are the ones that were never optimized, like a photo straight from the camera roll or a PNG screenshot of a photograph. Expect anything from "no change at all" to "90% smaller", never a fixed number.

    What re-encoding takes with it

    A compressed picture is rebuilt from its pixels, so everything that was not pixels is gone: GPS coordinates, camera make and model, the timestamp, the color profile the phone recorded. For a picture headed for a website that is a privacy improvement - photos posted online have exposed home addresses through GPS tags - but it also means the change cannot be undone, so keep the originals if you may want them back.

    The Exif orientation flag is handled rather than dropped: if a photo says "turn this 90 degrees", the pixels are turned so the picture is upright in any program, not only in viewers that honor the tag. When the same tag describes a mirror, the result says so, because a rotation cannot reproduce a mirror.

    JPEG has no transparency channel at all, so a logo with a transparent background written as a JPEG gets the color you choose put behind it. Choose PNG if the transparency has to survive; the trade is a larger file, and the before-and-after numbers will show exactly how much larger.

    Keeping, replacing or changing the format

    The form can keep each picture in its own format, or force everything to JPEG, WebP or PNG. Keeping is the honest default - it changes the pixels without pretending the format was part of the problem; forcing WebP is where most of a modern saving lives, shown only where this browser can actually write it.

    A format change comes with one catch the page names rather than hides: JPEG stores no transparency, so a see-through logo written as JPEG gets the background color you choose put behind it. The before and after numbers state exactly what the choice cost.

    Worked examples

    Each example below was run through the calculator on this page when the site was built, so the numbers match what you see when you enter the same inputs.

    A camera roll photo for a blog post

    JPEG / WebP quality: Balanced (75%) - the usual choice for the web · Pixel width cap: Up to 1600 px wide (blogs, email) · Output format: Keep each picture in its own format · Preview: pictures in the plan: 1 pictures

    Plan for 1 picture

    75% quality, up to 1600 px wide

    Each picture is re-encoded in this browser tab as each picture in its own format and downloaded as its own file.

    Pictures per job: up to 20 · Pixel width: max 1600 px · Output: each picture in its own format · If it does not shrink: original kept

    Balanced (75%) at a 1600 px cap keeps the picture sharp on a laptop screen while cutting most of the megabytes the phone produced.

    Thumbnails for a listing page

    JPEG / WebP quality: Small (60%) - fine for screens and thumbnails · Pixel width cap: Up to 800 px wide (thumbnails) · Output format: JPEG everywhere (smallest, no transparency) · Preview: pictures in the plan: 4 pictures

    Plan for 4 pictures

    60% quality, up to 800 px wide

    Each picture is re-encoded in this browser tab as JPEG and downloaded as its own file.

    Pictures per job: up to 20 · Pixel width: max 800 px · Output: JPEG · If it does not shrink: original kept

    Four pictures at 800 px and 60% quality: a product grid never shows more than about 400 pixels of a thumbnail, so the page loads with a fraction of the bytes.

    A transparent logo that has to become a JPEG

    JPEG / WebP quality: Near lossless (92%) - big files, no visible change · Pixel width cap: Keep the original pixel size · Output format: JPEG everywhere (smallest, no transparency) · Behind transparent pixels: White (safer for printing) · Preview: pictures in the plan: 1 pictures

    Plan for 1 picture

    92% quality, original pixel size

    Each picture is re-encoded in this browser tab as JPEG and downloaded as its own file.

    Pictures per job: up to 20 · Pixel width: unchanged · Output: JPEG · If it does not shrink: original kept

    Near lossless keeps the edges of lettering clean; the white background is added because a JPEG cannot store transparency, and the alternative is a black box behind the logo.

    A PNG screenshot that must keep every pixel

    JPEG / WebP quality: Near lossless (92%) - big files, no visible change · Pixel width cap: Up to 1600 px wide (blogs, email) · Output format: PNG everywhere (lossless, largest) · Preview: pictures in the plan: 1 pictures

    Plan for 1 picture

    92% quality, up to 1600 px wide

    Each picture is re-encoded in this browser tab as PNG and downloaded as its own file.

    Pictures per job: up to 20 · Pixel width: max 1600 px · Output: PNG · If it does not shrink: original kept

    Forcing PNG keeps the format and its pixels exactly - there is nothing lossy to tune, so the file shrinks only when the pixels do. Screenshots and flat color are where this wins; a photograph kept as PNG is usually the largest file in the batch.

    Frequently asked questions

    Are my pictures uploaded to a server?

    No. Each picture is read through the browser file API, decoded by your own browser, re-encoded in the same tab and offered as a download created locally. You can open the network panel while the job runs, or disconnect from the internet and compress anyway - both work, because there is no upload endpoint behind this page.

    How much smaller will my files get?

    It depends entirely on what you give it. A photo straight from a camera usually drops 60-90% at a 1600 px cap and 75% quality; a picture that has already been through another compressor often barely changes, and can even grow. The result panel reports the real numbers for your files, and never claims a saving it did not make.

    Why did my compressed picture come out larger?

    Because re-encoding is not free: existing quality losses are quantized a second time and the headers are written again. An already-optimized JPEG has little left to remove, so the new file can be bigger than the original. The default setting hands your own file back when that happens and says so, and the results table shows both sizes so you can see it for yourself.

    Can this tool read iPhone HEIC photos?

    Only if your browser can decode HEIC, which Safari on macOS and iOS can and Chrome and Firefox generally cannot. When the format cannot be decoded the page says exactly that instead of failing silently, and tells you how to convert it once on the device that made it. WebP, AVIF, GIF and BMP work wherever your browser supports them; JPEG and PNG work everywhere.

    What happens to the location and camera data in my photos?

    It is dropped, because the picture is rebuilt from its pixels and nothing else is carried over. That is usually what people want before posting a photo, but it is worth knowing: the Exif block with GPS coordinates, the device model and the timestamp does not survive this page. There is no option to keep it, because the encoders browsers provide cannot write Exif.

    Will the compressed picture look different?

    At 85-92% quality a re-encode is hard to see even side by side at 100% zoom. At 60% and below you start to see softness in fine texture and around high-contrast edges, and at 45% it is visible on any screen. The preview panel shows the picture that was actually written, so judging the quality is a look rather than a guess.

    Can I compress many pictures at once?

    Yes, up to 20 in one job, and each gets its own download button and its own row in the results table. They are processed one after another in the same tab, so a large set takes a while - the status line names the picture being worked on.

    Do you keep my files or the results?

    Nothing is stored anywhere. The pixels exist in your tab while the job runs and the downloads are created on your device; closing the tab ends it. There is no server copy to delete and no account to cancel.

    Assumptions and sources

    • Each picture is re-encoded at the quality and width you choose, and the result table shows the size before and after for every file.
    • A picture already optimized for the web can come out larger, so the original is returned when the new file is not smaller; up to 20 pictures per job, 25 MB each and 80 MB in total.
    • Nothing is uploaded: decoding and re-encoding happen inside your browser tab.

    Last reviewed 2026-09-14. Runs locally on your device; keep backups; no financial advice applies. Read the full disclaimer.

    Where a figure on this page comes from an official agency — HUD, IRS, FICO or a state body — the site keeps a dated snapshot of the source page in its sources library, and a scheduled job re-checks that snapshot, so the number can be traced back to the document it came from.