Camera photo exported as PNG
- Input
- A 4000×3000 photographic PNG from an editor, with no transparency and continuous-tone shadows.
- Output
- A quality 90 JPG that was much smaller for sharing. Fine texture changed slightly under JPEG compression.
PNG → JPG is for making photographic PNGs easier to share, while accepting lossy compression and no transparency.
From real runs
| Element | Result | What happens |
|---|---|---|
| Alpha channel | Lost | JPEG has no alpha, so transparent PNG regions are flattened onto the background color. |
| Background | Changed | White is the default flattening background; choose another color before converting transparent artwork. |
| Photo detail | Changed | Quality 90 keeps most photo detail while introducing normal JPEG quantization. |
| Screenshots and text | Changed | Flat UI colors and small text can gain halos or ringing after JPEG compression. |
| Metadata | Lost | PNG textual chunks and most metadata are not carried into the JPG output. |
| File size | Changed | Photo-like PNGs commonly become 5–10× smaller, while screenshots can shrink less or even grow. |
JPEG has no alpha, so transparent PNG regions are flattened onto the background color.
White is the default flattening background; choose another color before converting transparent artwork.
Quality 90 keeps most photo detail while introducing normal JPEG quantization.
Flat UI colors and small text can gain halos or ringing after JPEG compression.
PNG textual chunks and most metadata are not carried into the JPG output.
Photo-like PNGs commonly become 5–10× smaller, while screenshots can shrink less or even grow.
We converted our PNG sample (20 KB) with Image engine on 2026-10-20. It took 37 ms and produced a 39 KB JPEG file, 1.9× larger than the input. The engine raised 2 warnings, listed below.
Input · sample.png · 20 KB
1200 × 800 px, 8-bit, colour type 6
Output · sample.jpg · 39 KB
1200 × 800 px, baseline
ImageMagick 7
magick in.png -background white -flatten -quality 90 out.jpgThe explicit flatten step matters; otherwise transparent pixels can become black or depend on tool defaults.
Pillow 11
from PIL import Image
im = Image.open("in.png").convert("RGBA")
bg = Image.new("RGBA", im.size, "white")
bg.alpha_composite(im)
bg.convert("RGB").save("out.jpg", quality=90)Change the background color if the PNG was designed for something other than white.
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=jpg.
curl -X POST https://filetypeconverters.com/api/v1/convert \
-H "Authorization: Bearer $FTC_API_KEY" \
-F "file=@input.png" -F "from=png" -F "to=jpg" \
-F 'options={"dpi":96}' \
--output output.jpg| Key | Applies to | Type | Default |
|---|---|---|---|
| dpi | Reading PNG | number | 96 |
| width | Writing JPEG | number | 0 |
| height | Writing JPEG | number | 0 |
| fit | Writing JPEG | contain · cover · fill | contain |
| quality | Writing JPEG | number | 90 |
| background | Writing JPEG | string | #ffffff |
| stripMetadata | Writing JPEG | boolean | true |
They are flattened onto the background color because JPG cannot store transparent pixels.
JPEG is efficient for photos, not every PNG. Screenshots, flat graphics, and already-optimized PNGs may not shrink and can sometimes grow.
Most PNG metadata is dropped. Do not use the converted JPG as the only copy if PNG text chunks are important.
Quality 90 is the default. Lower values make smaller files with more artifacts; higher values reduce artifacts without making JPG lossless.