Skip to main content

100% Private

No Signup

Free Forever

One of 64 free AI tools by Mahmoud Zalt.

Free Image Compressor & Resizer

Compress & resize images in-browser|
4.8 (1,201)

A free, private image compressor and resizer that runs entirely in your browser using browser-image-compression, an open-source JavaScript module made to run in the web browser for image compression. The same library used in thousands of production apps to shrink photos before upload powers this page, so compression happens on-device with no server round trip. Drag and drop one image or a whole batch of JPEG, PNG, or WebP files, then set a target maximum file size in megabytes and an optional maximum width or height to downscale oversized images. The library compresses by iteratively reducing quality and, when needed, resolution until your size target is met, and it runs that work in a Web Worker so the page stays responsive even with large photos. For every file you see the original size, the compressed size, and the exact percent saved, plus a side-by-side preview. Download each result individually or grab them all at once. No images are uploaded, no accounts are required, and nothing is logged: every byte stays in your browser tab.

Free and provided as is, without warranty. Use at your own risk. Terms

Compress and resize images online without uploading anything

This free image compressor and resizer shrinks your JPEG, PNG, and WebP files right inside your browser, without sending a single byte to a server. It is built on browser-image-compression by Donaldcwl, described by its author as a JavaScript module made to run in the web browser for image compression. Drop in one image or a whole batch, set a target maximum file size in megabytes, and the library compresses each file on your device, iteratively reducing quality, and resolution when needed, until it fits under the size you chose.

Smaller images are one of the highest-leverage wins for performance and for everyday sharing. Compressing a heavy photo before you upload it speeds up pages, saves bandwidth, and lets you get under strict upload limits on forms, email, and marketplaces. Because the work happens locally, you see the original size, the compressed size, and the exact percent saved for every file, so you make an informed tradeoff instead of guessing.

Set a target size, cap dimensions, and batch-compress

Two controls do the heavy lifting. The target maximum file size (maxSizeMB) tells the library how small the result must be, and it keeps lowering quality until the output fits. The optional maximum width or height (maxWidthOrHeight) downscales oversized images, like a 4000px wide phone photo, to a sensible longest edge while preserving the aspect ratio. Capping dimensions first often makes a small size target far easier to hit and keeps the result looking sharp.

Batch mode lets you drop many images at once and compress them all in one pass, with a live progress bar per file and a combined summary of total bytes saved. Compression runs inside a Web Worker (the useWebWorker option), so the heavy processing happens on a background thread and the page stays responsive even while a large batch is in flight. When everything is done, download each file individually or grab them all at once.

A private, open-source alternative to cloud image compressors

Most online image compressors upload your files to a remote server, which is a privacy risk for screenshots, private photos, and unreleased designs, and often comes with file size caps or paywalls. This tool flips that model. It uses browser-image-compression, released under the MIT License, to run compression entirely on your device. There is no upload, no account, no watermark, and no limit, so your images stay yours.

Because the library is designed to run in strict browser and Web Worker environments, it is a natural fit for a no-server tool like this one. Whether you are optimizing a static site, preparing product photos, or just trying to send an image that is too large, this compressor gives you full control over target size and dimensions with zero data leaving your machine. You can verify that yourself by watching the DevTools Network tab while you compress: no image is ever sent.

Why image size is usually the first thing to fix for page speed

Images are the single biggest contributor to page weight on most websites, and an uncompressed hero photo straight off a phone camera is routinely 3 to 8 MB, more than the entire rest of a typical page combined. Since Largest Contentful Paint, one of Google's Core Web Vitals, is very often that hero image, compressing and correctly sizing it before upload is usually the highest-leverage single change for page speed, ahead of code-level optimizations.

The same problem shows up outside the web: an email attachment limit, a support ticket form capped at 5 MB, or a marketplace listing that silently downscales oversized photos into something blurry. Setting an explicit target size here before you upload anywhere avoids all of that guesswork.

How this compares to TinyPNG and Squoosh

TinyPNG is a well-known compressor with a generous free tier for its website, but its API and bulk usage are metered, roughly a few cents per image once you exceed the free monthly allowance, and every image is uploaded to their servers to be processed. Squoosh, Google's open-source image compression tool, is also free and also runs client-side, and it offers deeper manual control over codecs and quality curves for people who want to fine-tune every setting by hand.

This tool sits closer to Squoosh in architecture, no upload, no cost, since browser-image-compression is open source and runs entirely on your device, but it trades Squoosh's manual per-format tuning for a simpler workflow built around one number: your target file size in megabytes. For batch jobs where you just need a folder of images under a size limit fast, that simplicity is usually the faster path; for pixel-level control over a single hero image, Squoosh's manual codec settings go further.

Choosing a target size and format for what you are actually doing

For web content, a useful rule of thumb is keeping hero and header images under roughly 200 to 300 KB and inline or thumbnail images well under 100 KB, JPEG or WebP with a moderate quality setting gets there easily for photographic content. For strict upload forms, set the target size a little under the stated limit (0.9 MB for a 1 MB cap, for example) since compression rarely lands on an exact number.

Reach for PNG only when you actually need transparency or the image is mostly flat color and text, like a logo or a screenshot with sharp UI edges, since PNG's lossless compression will not shrink a photo nearly as far as JPEG or WebP will. For everything else, especially real photographs, JPEG or WebP at a target size gives the best balance of visible quality and file size.

How It Works

1

Drag and drop one or many JPEG, PNG, or WebP images into the drop zone, or click to browse and select files from your device.

2

Set a target maximum file size in megabytes and, optionally, a maximum width or height to downscale large images while keeping the aspect ratio.

3

Each image is compressed locally in a Web Worker, then you compare original vs compressed size and percent saved and download each file or all of them at once.

Need expert help with AI?

Looking for a specialist to help integrate, optimize, or consult on AI systems? Book a one-on-one technical consultation with an experienced AI consultant to get tailored advice.

Key Features

Powered by browser-image-compression by Donaldcwl, an open-source JavaScript module made to run in the web browser for image compression, used in thousands of production applications
Runs entirely in your browser and offloads the heavy work to a Web Worker (useWebWorker), so compressing large batches never freezes the page and nothing is processed on a server
Target a maximum file size in megabytes (maxSizeMB): the library iteratively reduces quality, and resolution if needed, until your image fits under the size you set
Optionally cap the longest edge with maxWidthOrHeight to downscale oversized photos and screenshots while preserving the original aspect ratio
Compresses JPEG, PNG, and WebP images, the formats the library supports through the browser canvas, with a live per-file progress bar driven by the library onProgress callback
Batch mode: drop many images at once and compress them all, with a combined total saved summary and a download-all action for every result
Per-image breakdown showing original size, compressed size, the exact percent saved, and a before-and-after preview thumbnail
Open-source and free to inspect: browser-image-compression is released under the MIT License

Privacy & Trust

All compression and resizing happens in your browser inside a Web Worker: your images are never uploaded to any server
No files, dimensions, or metadata are stored remotely, logged, or transmitted, and no account, signup, or API key is required
Built on the open-source browser-image-compression library by Donaldcwl (MIT License), so the compression logic is fully auditable
Verify privacy by opening the Network tab in your browser DevTools while compressing: you will see no upload of your images

Use Cases

1Shrink large photos and screenshots before attaching them to email, chat, or a support ticket that has a file size limit
2Compress and resize images before uploading them to a website, CMS, or marketplace to speed up pages and save bandwidth
3Batch-compress a folder of product photos or gallery images to a consistent maximum size in one pass
4Downscale oversized phone photos (for example 4000px wide) to a sensible max width before posting them online
5Reduce the weight of confidential screenshots or private images without sending them to a cloud compressor
6Hit a strict upload cap, such as a 1 MB or 2 MB limit on a form, by setting an exact target size in megabytes

Limitations

  • Supports raster images the browser canvas can read (JPEG, PNG, WebP); vector formats like SVG and camera RAW or HEIC files are not compressed
  • Compressing to a very small target can require dropping quality or resolution noticeably, so the smallest sizes may show visible artifacts
  • Very large images or large batches use significant memory and can be slower on low-end or mobile devices, since all work runs in your browser
  • PNG transparency is preserved, but PNG (lossless) compresses less than JPEG or WebP, so a tight size target may force a larger reduction in dimensions

Frequently Asked Questions

Is this image compressor free?

Yes, it is completely free with no usage limits, no watermark, and no signup. You can compress and resize as many images as you like, one at a time or in batches. It is built on browser-image-compression, an open-source library released under the MIT License, so both the tool and its compression engine are free to use and free to inspect. Because everything runs locally in your browser, there are no server costs to pass on to you.

Are my images uploaded to a server?

No. Every image is read into memory and compressed entirely on your own device using the browser-image-compression JavaScript engine running inside a Web Worker. Nothing is uploaded, stored remotely, or logged. You can confirm this yourself by opening the Network tab in your browser DevTools while you compress: you will see no request carrying your image. This makes the tool safe for private photos, confidential screenshots, and unreleased design assets.

Do I need to install an app or extension?

No. There is nothing to install. The compressor is a single web page that loads the browser-image-compression library and runs in any modern browser on desktop or mobile. Just open the page, drop in your images, set your target size, and download the results. No native software, no command-line tools, and no sign-in are required.

How do I compress an image to a specific size, like under 1 MB?

Set the target maximum file size in megabytes (for example 1) using the maxSizeMB control. The library then iteratively lowers the image quality, and reduces resolution if needed, until the output fits under the size you specified, while trying to keep the picture looking as good as possible. If you also set a maximum width or height, oversized images are downscaled first, which often makes hitting a small target far easier and the result sharper. The per-image readout shows the final size so you can confirm it met your goal.

What image formats can it compress?

It compresses the raster formats the browser canvas can read: JPEG, PNG, and WebP. JPEG and WebP are lossy and compress the most, which is ideal for photos. PNG is lossless and keeps transparency, but it compresses less, so for a small target you may need to allow more downscaling. Vector images like SVG and camera formats such as RAW or HEIC are not supported and should be exported to JPEG or PNG first.

Does compressing in the browser slow down the page or my computer?

Compression runs in a Web Worker (the useWebWorker option), which means the heavy image processing happens on a background thread instead of the main UI thread. The page stays responsive and you can keep interacting with it while a batch compresses, with a live progress bar for each file. Very large images or large batches still use real CPU and memory, so they may take a few seconds on low-end or mobile devices, but the work never blocks the interface.

Does it work offline and on mobile?

Yes on mobile: the layout is responsive and you can drop in or pick images from your phone, then compress and download them locally. As for offline, the compression itself runs on-device, but the page and the library need to load first, so you need a connection for the initial load. Once the page is open, compressing and resizing your images does not require any further network access, and no image ever leaves your device.

Q&A SESSION

Got a quick technical question?

Skip the back-and-forth. Get a direct answer from an experienced engineer.