EXIF-rotated camera photo
- Input
- A 96×64 JPEG with Orientation 6, camera Make and Software tags, an Artist tag, and an sRGB ICC profile.
- Output
- A 64×96 WebP, 1,046 bytes at quality 90. The image was upright, but EXIF and ICC metadata were gone.
JPG → WebP applied our EXIF orientation tag, turning a 96×64 portrait-flagged JPEG into a 64×96 WebP.
From real runs
| Element | Result | What happens |
|---|---|---|
| EXIF orientation | Changed | The Orientation 6 test photo was transposed into upright pixels, so the output dimensions became 64×96. |
| Camera EXIF | Lost | Make, Software, Artist, and Orientation tags from the JPEG did not appear in the WebP output. |
| ICC profile | Lost | The sRGB ICC payload present in the input JPEG was not listed after opening the output WebP. |
| Compression | Changed | Our 3,044 byte JPEG sample became a 1,046 byte WebP at quality 90 after orientation was applied. |
| JPEG artifacts | Kept | Noise and block edges already baked into the source JPEG remain part of the pixels WebP encodes. |
| Transparency | Lost | A normal JPEG has no alpha channel, so the WebP output from a JPG source is fully opaque. |
The Orientation 6 test photo was transposed into upright pixels, so the output dimensions became 64×96.
Make, Software, Artist, and Orientation tags from the JPEG did not appear in the WebP output.
The sRGB ICC payload present in the input JPEG was not listed after opening the output WebP.
Our 3,044 byte JPEG sample became a 1,046 byte WebP at quality 90 after orientation was applied.
Noise and block edges already baked into the source JPEG remain part of the pixels WebP encodes.
A normal JPEG has no alpha channel, so the WebP output from a JPG source is fully opaque.
We converted our JPEG sample (42 KB) with Image engine on 2026-10-20. It took 92 ms and produced a 22 KB WebP file, 48% smaller than the input. The engine raised 1 warning, listed below.
Input · sample.jpg · 42 KB
1200 × 800 px, baseline
Output · sample.webp · 22 KB
1200 × 800 px, lossy VP8
If the JPEG is a photographed receipt or whiteboard, WebP conversion will not make the words searchable. Use image-table-to-excel or screenshot-to-text when the content needs extraction.
cwebp
cwebp -q 90 in.jpg -o out.webpRun an EXIF transpose step first if your JPEG relies on orientation metadata rather than stored upright pixels.
Pillow 11
from PIL import Image, ImageOps
im = ImageOps.exif_transpose(Image.open("in.jpg"))
im.save("out.webp", quality=90)This mirrors the tested orientation behavior but does not preserve camera metadata.
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=jpg&to=webp.
curl -X POST https://filetypeconverters.com/api/v1/convert \
-H "Authorization: Bearer $FTC_API_KEY" \
-F "file=@input.jpg" -F "from=jpg" -F "to=webp" \
-F 'options={"dpi":96}' \
--output output.webp| Key | Applies to | Type | Default |
|---|---|---|---|
| dpi | Reading JPEG | 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 in the tested API path. The orientation tag was applied to pixels, and the output dimensions changed accordingly.
No in our run. The resulting WebP did not expose the JPEG EXIF tags or the ICC profile we inserted.
It depends on the image. Our small EXIF sample went from 3,044 bytes to 1,046 bytes, while a noisy photo at quality 90 kept more bytes to preserve detail.