WebP to PNG, in your browser
Drop a WebP file. Get a PNG. The conversion runs in your tab, not on our servers. Verify it yourself in DevTools.
Loading...
Files stay on your device. Nothing uploads.
Why convert WebP to PNG?
WebP is Google's image format. It compresses better than PNG and JPG and ships with full alpha-channel support. It is also widely served by image CDNs because it saves real bandwidth. The downside is that a fair amount of software still cannot read it: legacy Office, older photo viewers, many email clients.
PNG, by contrast, has lossless compression with full transparency, and it opens everywhere. If you need to drop a WebP into a presentation, embed it in an email signature, or hand it to a designer using older tooling, converting to PNG is the safe choice. You will pay for it in file size, especially for photographic content, but compatibility wins.
How this converter works
Modern browsers (Chrome, Edge, Firefox, Safari) decode WebP natively. We hand your file to the browser via the createImageBitmap API, which produces an ImageBitmap. We draw the bitmap onto an OffscreenCanvas inside a Web Worker, then call convertToBlob with type "image/png" to get a PNG-encoded result.
No WebAssembly module is involved. The conversion is essentially "ask the browser to decode, then re-encode". This converter's manifest reflects that with an empty wasmModules array. The privacy guarantee is unchanged: no file ever leaves your device.
Why a worker?
Image decoding and encoding can take meaningful time, especially for high-resolution photos. Doing that work on the main thread freezes the UI. The Web Worker keeps the page responsive: scroll, click, drop another file, all while the decoder runs.
OffscreenCanvas is what makes this possible. Older approaches required main-thread canvas access, defeating the worker's purpose. With OffscreenCanvas, decoded pixels live in the worker context until conversion finishes.
Verifying that nothing uploaded
The most reliable proof is your own DevTools. Press F12, open Network, and clear it. Drop a WebP. The only requests you should see are for our static assets and possibly a manifest JSON. If you see your filename in any URL, or a POST that carries blob data, take a screenshot and file a bug.
We also publish a Converter Manifest at /manifests/webp-to-png.json. It lists exactly which dependencies the converter loads. For this converter the list is empty: the browser does the work.
Quality, alpha, and color
PNG is lossless, so there is no quality slider. Whatever pixels the WebP decoder produces are encoded as PNG verbatim. If your WebP is a "lossy" WebP (encoded from a JPG, for example), the PNG will preserve those losses; PNG cannot un-lose information.
Alpha channels round-trip cleanly. Color profiles embedded in WebP are flattened to sRGB by the browser's decoder; if precise color management matters, run a separate ICC-aware tool after.
Frequently asked questions
- Why is the PNG bigger than the WebP?
- PNG is lossless and uses simpler compression. For photo-like images, it can be 2-5x bigger. For UI screenshots and graphics with flat colors, the size difference is smaller.
- Does this support animated WebP?
- Not yet. Animated WebP would convert to APNG, which has narrower support; for now only the first frame is exported. Static WebP works.
- Does this work offline?
- After the first visit, yes. The Service Worker caches the app and you can convert with no network.
- Is there a size limit?
- In theory, your browser's memory. In practice, files up to a few hundred megabytes work on a modern laptop. Very large images may fail; close tabs and try again.
- Where does the decoder come from?
- The browser. We do not bundle a third-party WebP decoder for this converter. createImageBitmap is part of every major browser as of 2024.