thoughtasylumTOOLBOX Preview Guides Use offline Automate Feedback

Tools › Images

Image Compressor

Make PNG, JPEG, WebP and AVIF files smaller while they still look the same, by trying many ways of compressing each one and keeping the smallest that meets the quality you choose.

About this tool What it's for, how to use it and an example

What it's for

Make PNG, JPEG, WebP and AVIF images smaller without them looking any different. Rather than applying one fixed setting, it tries many ways of compressing each image and measures every result against the original twice: with SSIMULACRA 2, a perceptual score (100 is identical; 90 and above usually can’t be told apart; 85 is very close), and with butteraugli, which catches a badly damaged patch that an overall score can hide (lower is better; about 1 is just noticeable). It keeps the smallest file that passes both for the quality you pick.

For example, when a website’s images make its pages slow to load, or a screenshot is too big to attach.

How to use it

Choose one or more PNG, JPEG, WebP or AVIF images, or drop them on the page (or paste a screenshot). Each starts at once, a few at a time, with a line showing what it’s trying, a progress bar with the time so far and a rough estimate of the time left (the last steps are often the slowest), and a chart of every method it plans to try: a box for each step, filled as it’s done, with methods it skipped struck through and ones it added along the way marked +. Stop ends them all.

  • Quality sets the score each result must reach, and the butteraugli limit that goes with it (0.6 at 90, 0.9 at 85, 1.3 at 80, 1.8 at 70). Lossless changes no pixels at all: it only finds a smaller way to store the same image.
  • Effort sets how much it tries. Thorough is the default; Maximum tries more colour reductions and encoder settings and compresses harder, and can take minutes for a large image, or much longer on an older computer.
  • Save as keeps each image’s format, or converts to PNG, JPEG, WebP or AVIF, or tries them all and keeps the smallest. JPEG is skipped for images with transparency, which it can’t keep. AVIF is usually the smallest for photos; every current browser shows it, but some apps and site builders don’t take it yet. Its engine (about 4 MB) is downloaded the first time it’s used.

For a PNG it tries the same pixels compressed harder (oxipng with Zopfli), then reducing the image to a palette of at most 256 colours, with and without dithering, finding the fewest colours that still reach the score, moving colours to where butteraugli shows the worst differences, then merging the palette’s closest colours one pair at a time while it still passes. Pixels so faint they barely show may become fully transparent. It also tries lossy truecolour: every colour kept, but each pixel nudged slightly so the file compresses better, for images that need more than 256 colours. For a JPEG it tries a lossless rewrite (progressive, with optimised coding tables), then re-encodes with jpegli and mozjpeg (with its own and the JPEG standard’s quantisation tables) at the lowest quality that reaches the score. For a WebP it tries lossless, near-lossless, the palette versions stored as lossless WebP, and lossy WebP with several encoder settings; for an AVIF, several encoder settings, each at the lowest quality that reaches the score. A lower quality setting sometimes scores higher, so it also tries a few below the one it finds, and then settings next to the winner’s.

Each image shows its new size, score and butteraugli, the method that won and Everything tried (with whether each passed). Compare shows the original and the result split by a slider. Download saves one; Download all as ZIP saves them all, under their original names (with a new extension if the format changed). Quality and Effort are remembered.

Example

Take a screenshot of this page and paste it here with Quality at High (score 85). Screenshots have few colours, so the winner is usually a palette of a few dozen to a couple of hundred colours, and the file often ends up a quarter to a half of its original size. Open Everything tried to see each method’s size and score, and Compare to check the result by eye.

Good to know

Every setting except Lossless changes pixels, so keep your originals. The score is a measure of how alike two images look, and closely matches what most people see, but it isn’t a promise: check results that matter with Compare, especially fine gradients, which a palette can band. If nothing in the same format is smaller than the original, the original is kept.

Both measures are colour-managed: they compare images as a colour-managed browser shows them, using each image’s colour profile or gamma. It keeps each image’s colour profile (without parts that don’t change its colours, such as a display’s calibration curves), and which way up a JPEG goes, but removes other metadata, such as camera details, GPS location and a PNG’s text notes. It reads and writes PNG, JPEG, WebP and AVIF; to resize or crop first, use Image Convert / Resize. Unless you choose Lossless, a PNG with 16 bits per channel is reduced to 8. Animated PNGs and WebPs aren’t compressed, and CMYK JPEGs only get the lossless rewrite. Large images need a lot of memory and time, more so at Maximum effort. Everything happens in your browser, and your images are never uploaded.

Guides: Getting images ready for a website · Screenshots for a blog post, slide or app store

Private: this tool runs in your browser. Nothing you type, paste or choose leaves this page.

Saved you a few minutes? Say thanks with a coffee.

Something wrong with this tool, or missing from it? Report a bug or suggest a feature.

↑ ↓ move↵ openesc close