Convert PNG to WebP

Screenshots, logos and graphics are often stored as PNG and are larger than they need to be. This tool encodes your PNG as WebP and, if it is a graphic, also as a losslessly optimized PNG — and returns the smaller result that holds your quality target. A transparent background is kept. It works in your browser and measures against your source.

Optimize
Preset

All presets target SSIM ≥ 0.98

Quality target

Drag an image here

or paste from the clipboard (Ctrl+V / ⌘V)

JPEG, PNG or WebP · the image stays on your device

Our own test series: 7 PNG sources

Our test corpus holds 7 PNG sources. At a quality target of SSIM ≥ 0.98, the tool returns 7 of them as WebP; none stays PNG. Across all 7 together the data drops by 67.6 %, from 401 KB to 130 KB.

The 7 images that changed save a median of 63.6 %. No PNG source stayed PNG.

Key figures of our own test series over the test corpus
PNG sources in the corpus 7
returned as WebP 7
returned as PNG 0
of those, handed back unchanged 0
Saving across all sources 67.6 %
Median per image 63.6 %
Lowest measured quality value 0.99487

These runs set no target resolution and no target size. What is measured is therefore only what the format change brings at unchanged dimensions. A preset with a target width achieves more — how much is not stated here, because it was not measured here.

Based on the fixed corpus runs of this project: 20 images, quality target SSIM ≥ 0.98, measured under Node with the codec versions from the manifest. Not counted: wide-gamut-p3.jpg — Decision 44: Display P3 profile, decoded without color conversion under Node. Its SSIM under Node is not the one the product delivers; the image tests ICC detection and counts in no statement about quality or size.

The values on this page, with their origin

Values of the preset on this page, with origin, source and check date
Preset Website / blog image (web)
Target resolution up to 1920 px wide
How the dimensions are read Budget: smaller images stay unchanged, larger ones are fitted
Allowed formats WebP, JPEG, PNG — chosen by measurement
Quality target SSIM ≥ 0.98
Metadata removed (EXIF, GPS)
Origin of the values Project value, no outside source
Source none — the value comes from this project’s specification
Last checked – No check date needed

The width 1920 is the default value in the project specification 7.2. There is no platform documentation for it — the number is a setting of this project, not an outside requirement. The width is a budget, not a requirement — hence `fit: "max"`.

Platforms change their requirements without notice. That is why every check expires after 90 days and then shows as “Check due” — here and on the presets overview.

The quality target itself is not set but tested: on September 13, 2026 it was held against the eye on the test corpus. It passes narrowly — what exactly that means, and where the method reaches its limits, is on How we measure quality.

Why these values?

With PNG sources, different candidates compete than with photos. If the tool detects a graphic — few colors, hard edges — a losslessly optimized PNG joins in. If it detects transparency, JPEG drops out because it cannot carry an alpha channel. The winner is whichever delivers the smallest file while holding the quality target. There is no hysteresis for PNG: if it is smaller, it wins.

The two routes differ in principle. An optimized PNG is lossless — it reorganizes the data without changing a single pixel. A WebP in this tool is lossy and is therefore measured. That the measured value usually comes out high for screenshots and logos is down to the images: large areas of one color survive compression almost untouched.

So the interesting question on this page is not whether WebP is smaller, but when it is not. The test series below answers that for our test corpus — and because all images there took the same route, the number stands as it was measured, without a counter-example.

Frequently asked questions

Is the transparency kept?

Yes. If the tool detects an alpha channel, JPEG drops out as a candidate because it cannot carry transparency. WebP and PNG remain, and both carry an alpha channel.

If a platform preset only allows JPEG and your image has a transparent background, the tool stops with a plain sentence instead of quietly replacing the transparency with black or white.

When is PNG still the right choice?

Whenever the optimized PNG comes out smaller than the WebP — then it wins here on its own, and you get it without doing anything.

Beyond that there are reasons no measurement can settle: lossless output as a requirement, further editing, where the file has to end up. This page makes no statement about them as long as they are not backed by evidence.

What about screenshots of text?

Text in a screenshot is the most sensitive case: the edges of letters are exactly the structure whose loss you see at once. The measurement captures that — it rates local structure, not average deviation.

If the result still looks too soft to you, that is a sign the quality target is set too low for your case. It is visible in the tool and shown under every result.

What does the quality value under the result mean?

It is called SSIM. It compares the result with your source — not byte by byte, but by structure: brightness, contrast and local pattern in small windows across the whole image. 1.000 means the images are identical — that is the value you see when the tool hands your own image back. Below that the distance grows.

The value is measured on every run and shown, including when it comes out badly. How the measurement works, and where it reaches its limits, is on the page about our method.

Is my image uploaded anywhere?

No. Everything runs in your browser: decoding, measuring and encoding happen on your device, in a background thread. There is no server that receives your image, and therefore none where it could stay behind.

This is not a setting you can flip. It is how the tool is built — there is no counterpart it could send anything to.