Transparent product cutout
- Input
- A lossless WebP product image with soft alpha around hairline edges on a transparent background.
- Output
- A PNG with the same transparent edge pixels, suitable for an editor that refused WebP uploads.
WebP → PNG is best when a WebP asset needs transparent PNG compatibility, not when you want to undo WebP compression.
From real runs
| Element | Result | What happens |
|---|---|---|
| Lossless WebP pixels | Kept | A lossless WebP decodes to the same pixels and PNG stores those pixels losslessly. |
| Lossy WebP artifacts | Kept | Blocking, ringing, or blurred texture from a lossy WebP is already part of the decoded image and remains in the PNG. |
| Alpha channel | Kept | Transparent and semi-transparent pixels are preserved in the PNG output. |
| Animation | Lost | Animated WebP inputs are decoded as the first frame only; PNG output is a still image. |
| Metadata | Changed | WebP metadata chunks are not a reliable interchange target for PNG; do not use this route to archive metadata. |
| File size | Changed | PNG is often larger than WebP, especially for photos, because it does not use WebP's lossy prediction model. |
A lossless WebP decodes to the same pixels and PNG stores those pixels losslessly.
Blocking, ringing, or blurred texture from a lossy WebP is already part of the decoded image and remains in the PNG.
Transparent and semi-transparent pixels are preserved in the PNG output.
Animated WebP inputs are decoded as the first frame only; PNG output is a still image.
WebP metadata chunks are not a reliable interchange target for PNG; do not use this route to archive metadata.
PNG is often larger than WebP, especially for photos, because it does not use WebP's lossy prediction model.
We converted our WebP sample (23 KB) with Image engine on 2026-10-20. It took 301 ms and produced a 97 KB PNG file, 4.2× larger than the input. The engine raised 1 warning, listed below.
Input · sample.webp · 23 KB
1200 × 800 px, extended VP8X
Output · sample.png · 97 KB
1200 × 800 px, 8-bit, colour type 6
ImageMagick 7
magick in.webp out.pngFor animated WebP, ImageMagick can write multiple frames unless constrained; this page's conversion uses the first frame only.
Pillow 11
from PIL import Image
Image.open("in.webp").save("out.png")The snippet writes the decoded pixels; it does not remove artifacts from lossy WebP input.
The HTTP API and the MCP server run the exact engine this page uses (Image engine); the response carries the same warnings the web converter shows. Check support first with GET /api/v1/pairs?from=webp&to=png.
curl -X POST https://filetypeconverters.com/api/v1/convert \
-H "Authorization: Bearer $FTC_API_KEY" \
-F "file=@input.webp" -F "from=webp" -F "to=png" \
-F 'options={"dpi":96}' \
--output output.png| Key | Applies to | Type | Default |
|---|---|---|---|
| dpi | Reading WebP | number | 96 |
| width | Writing PNG | number | 0 |
| height | Writing PNG | number | 0 |
| fit | Writing PNG | contain · cover · fill | contain |
| quality | Writing PNG | number | 90 |
| background | Writing PNG | string | #ffffff |
| stripMetadata | Writing PNG | boolean | true |
It is lossless for a lossless WebP source. For lossy WebP, PNG preserves the decoded image, including any artifacts already present.
Yes. WebP alpha becomes PNG alpha, including semi-transparent edges.
This our image engine path decodes the first frame for PNG output. A normal PNG cannot store WebP frame timing.
WebP can use lossy compression designed for photos. PNG stores the decoded pixels losslessly, which often costs more bytes.