Transparent app badge
- Input
- A 96×64 RGBA PNG with transparent corners, antialiased shapes, text chunks, and an sRGB profile.
- Output
- A 1,320 byte WebP in RGBA mode. Alpha survived, but the metadata keys changed to WebP container fields.
PNG → WebP kept the alpha channel in our RGBA sample, but the 1,084 byte PNG grew to 1,320 bytes because the test artwork was tiny.
From real runs
| Element | Result | What happens |
|---|---|---|
| Alpha channel | Kept | Transparent corners in the RGBA PNG stayed transparent after decoding the WebP output with our image engine. |
| Small flat artwork | Changed | The 96×64 icon-style PNG grew from 1,084 bytes to 1,320 bytes at quality 90 instead of shrinking. |
| PNG text chunks | Lost | The input Comment and Source chunks were not visible in the WebP metadata returned by the API. |
| ICC profile | Lost | The sRGB ICC profile in the test PNG did not appear in the WebP info keys after conversion. |
| 16-bit samples | Changed | A 16-bit grayscale PNG decoded to an 8-bit RGB WebP, so high-bit-depth channel precision was reduced. |
| Pixel dimensions | Kept | The default conversion kept the 96×64 dimensions, while resize options are needed for a new raster size. |
Transparent corners in the RGBA PNG stayed transparent after decoding the WebP output with our image engine.
The 96×64 icon-style PNG grew from 1,084 bytes to 1,320 bytes at quality 90 instead of shrinking.
The input Comment and Source chunks were not visible in the WebP metadata returned by the API.
The sRGB ICC profile in the test PNG did not appear in the WebP info keys after conversion.
A 16-bit grayscale PNG decoded to an 8-bit RGB WebP, so high-bit-depth channel precision was reduced.
The default conversion kept the 96×64 dimensions, while resize options are needed for a new raster size.
We converted our PNG sample (20 KB) with Image engine on 2026-10-20. It took 219 ms and produced a 23 KB WebP file, about the same size as the input. The engine raised 1 warning, listed below.
Input · sample.png · 20 KB
1200 × 800 px, 8-bit, colour type 6
Output · sample.webp · 23 KB
1200 × 800 px, extended VP8X
For screenshot PNGs, converting to WebP only changes the image container. Use screenshot-to-text if the screen content needs to become copyable text or structured data.
Pillow 11
from PIL import Image
Image.open("in.png").save("out.webp", format="WEBP", quality=90)Install WebP-enabled Pillow. High-bit-depth PNGs are decoded before writing and may not stay high precision.
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=png&to=webp.
curl -X POST https://filetypeconverters.com/api/v1/convert \
-H "Authorization: Bearer $FTC_API_KEY" \
-F "file=@input.png" -F "from=png" -F "to=webp" \
-F 'options={"dpi":96}' \
--output output.webp| Key | Applies to | Type | Default |
|---|---|---|---|
| dpi | Reading PNG | number | 96 |
| width | Writing WebP | number | 0 |
| height | Writing WebP | number | 0 |
| fit | Writing WebP | contain · cover · fill | contain |
| quality | Writing WebP | number | 90 |
| background | Writing WebP | string | #ffffff |
| stripMetadata | Writing WebP | boolean | true |
Yes for the tested RGBA case. The decoded WebP still had alpha at the transparent corners.
Very small flat images can grow because WebP has its own container and prediction overhead. Photos are where quality settings usually produce clearer byte savings.
No in our API run. A 16-bit grayscale PNG came back from WebP as 8-bit RGB when inspected with our image engine.