Two-frame color test
- Input
- A 64×48 GIF with a red first frame and a green second frame, both containing white labels.
- Output
- A 688 byte RGB JPEG showing the red frame. The green frame and both timing values were gone.
GIF → JPG produced a 688 byte JPEG from our two-frame GIF, keeping the red first frame and dropping the green second frame.
From real runs
| Element | Result | What happens |
|---|---|---|
| First frame | Kept | The red first frame of the sample GIF became the visible JPEG image. |
| Animation | Lost | The second frame, frame delays, and loop setting were removed before JPEG writing. |
| Transparency | Lost | Any transparent GIF pixels must be flattened because JPEG output is opaque RGB. |
| Palette colors | Changed | Indexed GIF colors are converted through RGB and then quantized by the JPEG encoder. |
| Compression | Changed | The 542 byte test animation became a 688 byte JPEG at quality 90 after becoming a still image. |
| Sharp edges | Changed | Flat-color GIF artwork can gain JPEG ringing around text and hard boundaries. |
The red first frame of the sample GIF became the visible JPEG image.
The second frame, frame delays, and loop setting were removed before JPEG writing.
Any transparent GIF pixels must be flattened because JPEG output is opaque RGB.
Indexed GIF colors are converted through RGB and then quantized by the JPEG encoder.
The 542 byte test animation became a 688 byte JPEG at quality 90 after becoming a still image.
Flat-color GIF artwork can gain JPEG ringing around text and hard boundaries.
We converted our GIF sample (16 KB) with Image engine on 2026-10-20. It took 21 ms and produced a 36 KB JPEG file, 2.3× larger than the input. The engine raised 1 warning, listed below.
Input · sample.gif · 16 KB
1200 × 800 px, GIF87a
Output · sample.jpg · 36 KB
1200 × 800 px, baseline
A GIF of a scrolling page will become a single JPEG frame. Capture the frame with the needed text and run OCR if you need content rather than a thumbnail.
ImageMagick 7
magick 'in.gif[0]' -background white -alpha remove -quality 90 out.jpgSelect a different frame yourself if the first GIF frame is not the thumbnail you want.
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=gif&to=jpg.
curl -X POST https://filetypeconverters.com/api/v1/convert \
-H "Authorization: Bearer $FTC_API_KEY" \
-F "file=@input.gif" -F "from=gif" -F "to=jpg" \
-F 'options={"dpi":96}' \
--output output.jpg| Key | Applies to | Type | Default |
|---|---|---|---|
| dpi | Reading GIF | 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 |
The tested our image engine route uses the first frame. Our red first frame appeared, and the green second frame did not.
It becomes the selected background color before JPEG compression. Set that color intentionally for transparent stickers or sprites.
JPEG is lossy and not ideal for flat palette artwork. Use PNG when sharp edges or small labels are the priority.