ByteScope

PNG to WebP

Turn a lossless PNG into a much smaller WebP that still carries every transparent pixel — and every frame, if the PNG was animated.

Your files never leave your browser — all processing is local.

convert to
resize

✓ EXIF, GPS and all other metadata are removed from the output.

Drop images here

or click to browse — PNG, JPEG, WebP, GIF, HEIC, AVIF, SVG — you can also paste images (Ctrl+V) anywhere on this page

Why convert PNG to WebP?

What a PNG loses on the way to WebP

Two of the things people expect to lose here survive. WebP carries a full 8-bit alpha channel, so transparent pixels are never flattened onto a background color the way the JPG route forces. An animated PNG survives too: the converter opens the file with the browser's ImageDecoder, and when it finds more than one frame and WebP is the target, it re-encodes each frame and assembles an animated WebP with the original frame delays and loop count. If that assembly fails it falls back to a single static frame and says so in a warning rather than silently dropping the motion.

What does go is everything outside the pixels. The source is decoded, drawn onto a canvas and encoded again, so ancillary chunks are not carried across: an embedded ICC profile, a gAMA or cHRM description of the source color space, text chunks, and any EXIF block a camera or an editor attached. A wide-gamut file tagged Display P3 therefore arrives as untagged pixel values, and a viewer will read them as sRGB. Bit depth is the other casualty. PNG can store 16 bits per channel; the canvas the converter draws into is 8-bit RGBA, so a 48-bit master is quantized before the encoder ever sees it, and that precision cannot be recovered from the result.

The last loss is optional rather than structural. At the default setting the output is lossy, so fine texture, dithered gradients and the crisp one-pixel edges typical of screenshots and UI exports are approximated. The lossless toggle in the settings above switches to the WASM encoder and keeps every pixel exactly, usually still landing under the original size for flat graphics — the choice is yours, and it is the only item on this list you can turn off.

How the file size changed in a measured run

On 2026-09-12, apps/web/scripts/measurePairs.ts took a 1280 × 854 PNG produced from the commit-pinned libheif example photo and written with "optimize (oxipng)" on: 1,689,485 bytes. This tool leaves that option off by default, so an unoptimized PNG of the same picture would start larger. Encoding it at quality 85 with @jsquash/webp gave 319,834 bytes, about 81% smaller for this one photographic sample. Treat that as a data point, not a rule. A photograph is the case where lossy WebP wins by the largest margin; a flat logo, a screenshot with large uniform areas, or a source that was already palette-reduced compresses well on its own, and the gap narrows sharply — occasionally to nothing, if you also switch the target to lossless.

When you should not convert PNG to WebP

Keep the original when it is the master you edit and re-export from, because each lossy pass at quality 85 is a fresh approximation and they accumulate. Keep it for anything that must stay pixel-exact for comparison or automated screenshot testing, unless you turn lossless on. Keep it when the destination sits outside the modern web: email clients are still uneven, some print and prepress workflows reject the format outright, and favicon and app-icon pipelines usually want PNG or ICO. A 16-bit file used as a height map, a depth pass or a scientific image should not be routed through here at all — the 8-bit canvas step is the problem, not the encoder. For the ordinary case, a photo or a screenshot headed for a web page, this is one of the cheapest size wins available.

Conversion happens entirely in your browser — no upload, no queue, no watermark. Drop in as many files as you like and download them individually or as a zip.

Frequently asked questions

Does PNG to WebP keep transparency?

Yes. WebP stores a full 8-bit alpha channel, so semi-transparent pixels, soft shadows and antialiased edges come through unchanged, and no background color is applied anywhere. That is the main reason to pick this target over JPG when the source has anything transparent in it.

Will an animated PNG come out as an animated WebP?

It will. The converter detects the extra frames and builds an animated WebP with the original delays and loop count instead of keeping only the first one. If that encode fails for any reason it falls back to a single static frame and shows a warning, so you always know which of the two you received.

Is WebP always smaller than the PNG it was made from?

No. In the measured photographic sample it was about 81% smaller, but a flat-color graphic, a small icon or an already palette-reduced source can land close to the original, and the lossless mode occasionally ends up larger. Compare the size readout after conversion instead of assuming the win.

Are my images uploaded anywhere?

No. Conversion happens inside your browser using the canvas API and a Web Worker — files never leave your device. There is no upload step, no queue and no file size limit beyond your machine's memory.

Is EXIF metadata kept in the converted image?

No — and that's a feature. Re-encoding through the canvas strips all metadata: GPS location, camera model, timestamps and color profiles. The output contains pixels only, which is usually what you want before sharing an image publicly.

Can I convert many images at once?

Yes. Drop or paste any number of files; each is converted in the background with its own progress and download button, and you can grab everything at once as a .zip archive.

Will converting lower my image quality?

It depends on the target. The converter always decodes to raw pixels and re-encodes, whichever formats are involved, which is also how metadata gets stripped. For lossless targets (PNG, and GIF within its 256-color limit) the pixels stay identical to what was decoded; for JPEG, WebP and AVIF the quality slider controls the trade-off, and converting a file that is already lossy adds one more generation of loss.