PNG to WebP Converter
Turn PNG screenshots and exports into WebP without uploading them anywhere. Up to 5 images per batch.
How to use
Drop in up to five PNGs
Drag files onto the panel or tap it to open the file picker. Anything over 25 MB or wider than 8192 pixels is rejected before it reaches the encoder.
Set the quality you can live with
The slider runs from 60 to 100 and defaults to 80. Push it up for detailed artwork, drag it down for large background images where nobody will look closely.
Process and take the ZIP
Every converted file is bundled into a single archive and handed to your downloads folder. Original filenames are kept, only the extension changes.
Key Features
Alpha channel survives intact
WebP carries a full 8-bit alpha channel in both its lossy and lossless modes, so rounded corners, soft shadows and cut-out product shots come through without the fringing you get from formats that only support a single transparent colour.
Nothing leaves the browser
PNG, JPEG and WebP encoding all run locally through the canvas encoder. There is no upload step, no temporary file on a server, and the tool keeps working after you disconnect from the network.
Encoding runs off the main thread
Work is handed to a Web Worker with OffscreenCanvas, so scrolling and clicking stay smooth while a batch encodes. Browsers without OffscreenCanvas fall back to main-thread processing and the page tells you it has done so.
Five files per batch, on purpose
Each PNG is fully decoded into memory before re-encoding. Capping the batch at five keeps peak memory inside what a typical laptop or phone can handle instead of letting the browser kill the tab mid-run.
Real format validation
Files are checked by reading their leading magic bytes, not by trusting the extension. A .png that is actually a renamed JPEG is caught at the door rather than producing a confusing failure later.
One archive, original names
Output is zipped in the browser with JSZip and named after the source files, so a folder of forty assets can be converted in eight batches and dropped straight back into place.
Frequently Asked Questions
Will my transparent backgrounds still be transparent?+
Why only five images at a time?+
If you have a large folder, run it in batches of five. Each batch produces its own ZIP and the tool never holds more than one batch at a time.
Is WebP safe to use in production yet?+
Does converting to WebP lose quality?+
What happens to files that are too large?+
Can I convert JPEGs here too?+
Format Comparison
| Feature Specification | PNG to WebP conversion | Alternative |
|---|---|---|
| Typical size, 1600px UI screenshot | 120 to 180 KB | 2 to 3 MB |
| Re-saving repeatedly | Lossy mode degrades a little each time | Lossless, nothing accumulates |
| Compression model | Lossy or lossless, your choice | Lossless only |
| Best suited to | Screenshots, photos, UI exports | Line art, icons, exact-pixel work |
| Browser support | Every current browser | Every browser ever made |
Technical Overview & Specifications
Deep dive into PNG to WebP conversion architecture and processing.
Show DetailsHide Details
Technical Overview & Specifications
Deep dive into PNG to WebP conversion architecture and processing.
Platform Overview
PNG has one job and it does it perfectly: it gives you back exactly the pixels you put in. That guarantee is also why your assets folder is enormous. PNG compresses with DEFLATE, the same general-purpose algorithm behind ZIP, and DEFLATE has no idea it is looking at a photograph. It cannot discard the subtle noise in a gradient or the colour detail your eye will never resolve, because discarding anything would break the lossless promise. So a 1600-pixel-wide product screenshot with a soft drop shadow and a blurred backdrop lands somewhere around 2.4 MB. Run the same image through WebP at quality 80 and you will typically see 120 to 180 KB. That is not a rounding error, it is the difference between a page that loads before the user notices and one that does not.
This converter takes up to five PNG files at a time and re-encodes each one to WebP inside your browser. The decode and encode both happen in a Web Worker using the canvas encoder your browser already ships, so the tab stays responsive and the files never touch a network. Transparency comes through intact, which is the part people usually worry about. The cap of five is deliberate rather than arbitrary: each image is fully decompressed into memory before it is re-encoded, and a handful of large PNGs will happily consume a gigabyte or more of RAM between them. Five keeps the tool predictable on a mid-range laptop and on phones, where the browser will simply kill the tab if you push past its allowance.
What happens between drop and download
When a file lands, the first thing that runs is a magic byte check: the first few bytes are read and matched against the known PNG, JPEG and WebP signatures. Extensions are ignored because they lie. The file then gets an object URL and is loaded into an Image element purely to read its intrinsic dimensions, which is how the 8192 pixel guard is enforced. Only after both checks pass does the file enter the batch. From there the job is queued into a small worker pool that runs two encodes concurrently. Two is a compromise: more parallelism does not help much because canvas encoding is already using native code underneath, and it multiplies peak memory by the number of workers.
Inside the worker, the PNG is decoded to an OffscreenCanvas, any crop or scale settings are applied to the bitmap, and the canvas is asked for a WebP blob at the quality you selected. The quality value is passed through a mapping function rather than used raw, which is what produces the flattening above 90, where WebP starts spending a lot of bytes on detail that is not visually recoverable. The resulting blobs are collected and streamed into a ZIP with JSZip, then handed to the browser as a download. Object URLs are revoked as soon as they are consumed, because leaking them is the fastest way to make a long session run the tab out of memory.