← Back

Image Compressor

Adjust quality and size to shrink file size

About Image Compressor

This tool solves one narrow problem: an image is too big to upload. It shrinks each picture to no wider than the limit you set, re-encodes it as a JPG at the quality you set, and shows the before and after size in KB next to every file. It does not aim for a target size on its own (there is no "squeeze under 200KB" mode), so you find the setting by dragging sliders, and it does not preserve formats: the output is always JPG. It suits anyone sending pictures to a form, forum or CMS with a size cap, or slimming down a batch of photos before sharing them.

How to use it

  1. Click "Click to upload images, multiple selection allowed" and choose one or more images. You can add more later; they are appended to the list.
  2. Drag the "Max width" slider (200-2400px, default 1280px). Images wider than that are scaled down proportionally; narrower ones are never enlarged.
  3. Drag the "Compression quality" slider (10%-100%, default 70%). Every change re-compresses all the images with the new values.
  4. Read each row ("original KB → compressed KB · width×height"), then use the download icon for a single file, or "Download all as ZIP" (shown when there are two or more) to get compressed-images.zip.
  5. Click the × at the end of a row to drop an image from the list.

A worked example: width or quality, which matters more?

We generated a synthetic 3000×2000 test image with a script (gradient, colored blobs and noise; not a real photo, and the noise inflates sizes) and re-encoded it as JPEG the same way this tool does, after scaling. At 3000px wide, quality 95% came to about 2700KB, 70% to about 675KB and 30% to about 203KB. Capped at 1280px wide, 70% came to only about 117KB. In this sample, cutting the width from 3000 to 1280 saved more than dropping quality from 95% to 70%. Real photos will give different numbers because file size depends heavily on image content (busy textures compress worse), so treat this as a pattern, not a promise: if the picture will only be viewed on a web page or phone screen, reduce the width first, then fine-tune with quality. 60%-80% is a sensible range to start testing in.

Supported input and known limitations

  • Input: files whose type is image/* and that your browser can decode (typically JPG, PNG, WebP and so on, depending on the browser). A file that cannot be decoded is silently skipped and simply does not appear in the results.
  • Output is always JPG, named "originalname-compressed.jpg". A PNG with transparency becomes a JPG and its transparent areas turn black, so this is the wrong tool for cut-out images.
  • Animated images such as GIFs come out as a single still frame.
  • Because the image is redrawn on a canvas and re-encoded, metadata such as camera model and GPS location is not carried over. That is good for privacy, but do not use the tool if you need to keep it.
  • There is no safeguard against growth: an already well-compressed image run at a very high quality can end up larger than the original. Trust the KB numbers on the page.
  • All images are processed in browser memory at once, so dozens of very large originals can slow down or stall a low-end phone.

Why did my image get bigger?

The original was probably already a heavily compressed JPG, or a small image, and the quality is set very high (close to 100%). Re-encoding a JPG is lossy and not guaranteed to produce a smaller file. Lower the quality or the max width.

My PNG screenshot got a black background

The output is JPG, which has no transparency. Transparent areas of a PNG turn black after conversion. Do not use this tool for images that must stay transparent.

How do I get under a size limit such as 200KB?

There is no target-size mode, so it is trial and error: first reduce the max width to the size you actually need, then lower the quality step by step until the compressed KB shown on the page is below your limit. The page counts 1KB as 1024 bytes and rounds to a whole number, so leave a little margin when you are close to the cap.

Some images are missing from my ZIP

Names inside the ZIP are the original file name plus "-compressed.jpg". If several selected images share the same name (say image.jpg from different folders), they collide in the ZIP and later ones overwrite earlier ones. Rename them first, or download them one by one.

Are my images uploaded?

No. Reading, resizing and re-encoding all happen in your browser, and the tool's code makes no network request that sends images anywhere. The only thing fetched on demand is the script module that builds the ZIP, loaded when you click "Download all as ZIP".