Convert JFIF to APNG Online

Turn JFIF images into APNG files in seconds—upload your file, choose quality and resolution options, then download your converted APNG.

Initializing... drag & drop files here

Supports: JPG, JPEG, JFIF

OptionsAdvanced Options - Our defaults are optimized for the best results. We recommend you keeping the defaults unless you have a specific need.
Image resolution
Framerate
Framerate
Combine?
Select Single animation to combine all uploaded images into a single animation. Use Individual files to create a separate animation for each individual file.

Make an Animated APNG From JFIF Photos

A .jfif file is an ordinary JPEG — opaque, lossy, full-colour photo data in the standard JPEG interchange wrapper — and a single one holds exactly one frame. So this page works as an APNG assembler: upload a set of JFIF photos and each becomes a frame of one animated PNG, played in upload order on an infinite loop. Because APNG stores full 24-bit colour instead of GIF's 256-entry palette, photographic frames keep their gradients and skin tones instead of being dithered into bands. Upload a single JFIF and there is nothing to animate — see the first FAQ, which explains exactly what you get instead.

How to Convert JFIF to APNG

  1. Upload Your JFIF Files in Order: Drag your photos onto the page or click "Upload". The converter accepts .jfif, .jpg and .jpeg, and the order you add them is the order they play, so add the frames in sequence.
  2. Set the Framerate: The "FRAMERATE" dropdown decides how long each frame is held. It defaults to "10 FPS (Recommended)" and offers 50, 30, 25, 20, 15, 12, 10, 8, 5, 2 and 1 FPS — 1 or 2 FPS gives a slideshow feel, 25-50 FPS a fast loop.
  3. Choose Image resolution and the Combine? Mode: "Image resolution" starts on "Keep original"; switch to Resolution Percentage, Preset Resolutions or Width x Height to shrink the frames. "Combine?" defaults to "Single animation" — pick "Individual files" instead to get one separate APNG per photo.
  4. Convert and Download: Click Convert and save the .apng. Files upload over an encrypted connection, are assembled on our servers, and are deleted automatically after a few hours — no sign-up, no watermark.

What the Converter Actually Writes

APNG is a plain PNG with extra animation chunks, so the result can be inspected byte by byte. We assembled a three-frame test with the same APNG assembler this pipeline uses (APNG Assembler 2.91) and read the chunks back:

Chunk What we found What it means
IHDR 8-bit, colour type 2 (truecolour RGB) Full 24-bit colour, no palette quantisation
acTL num_frames = 3, num_plays = 0 One frame per uploaded photo; zero means loop forever
fcTL (each frame) delay 1 / 10 An exact rational delay of one tenth of a second at the default 10 FPS
Frame geometry every frame at the full canvas size Frames are composited, never cropped
Post-processing Zopfli optimisation pass Applied on a best-effort basis to shrink the finished file

That exact-rational delay is a real APNG advantage. GIF stores each frame's delay in hundredths of a second, so any frame rate that is not a clean divisor gets rounded; APNG stores a numerator and denominator, so 12 FPS is exactly 1/12 second rather than an approximation.

APNG vs GIF for Frames Built From Photos

Property APNG GIF
Colour depth 16.7 million colours (24-bit truecolour) 256 colours per frame (8-bit palette)
Transparency 8-bit alpha, smooth edges 1-bit, hard on or off
Frame delay precision Exact rational, e.g. 1/10 s Hundredths of a second, rounded
Compression PNG DEFLATE, lossless per frame LZW over a quantised palette
Result with photographic frames Clean gradients, larger file Visible dithering and banding, smaller file
Browser support 95.94% globally — Chrome 59+, Firefox 3+, Safari 8+, Edge 79+, Opera 46+; never Internet Explorer Universal
Behaviour where unsupported Only the first frame is displayed, as a normal static PNG Not applicable

For a sequence of photographs APNG is the better container, because your JFIF frames already carry colour a GIF palette would throw away. If you need an animation that plays literally everywhere including ancient clients, build a JFIF to GIF instead and accept the 256-colour limit.

The Three Controls on This Page

This conversion deliberately exposes very little, because there is very little to decide. Under Advanced Options you get exactly three groups:

  • Image resolution — "Keep original" by default. Because the assembler cannot resize frames itself, your choice is applied by scaling the shared canvas that all frames are fitted to, which is also how mixed-size uploads are handled.
  • FRAMERATE — the per-frame delay for every frame in the animation. There is no way to give individual frames different durations here.
  • Combine? — "Single animation" merges the uploads into one APNG; "Individual files" writes one APNG per photo.

Controls you may have seen on other image pages — Colors and palette reduction, Image quality (%), Compression level, Bit Depth, Lossless — are not rendered for JFIF to APNG, and the output is left at full truecolour. Palette reduction is a GIF-family control: it appears on JFIF to GIF, alongside an Image quality (%) slider, because a GIF has to be quantised to 256 colours anyway. To shrink an APNG you have already built, compress APNG offers a target file size, an exact file size and a quality percentage — but no palette control there either, since APNG stays truecolour.

Frequently Asked Questions

What happens if I upload just one JFIF?

You get a still picture, not an animation. A single photograph has one frame, and when the assembler is handed two copies of an identical frame it collapses them back into one, so the file it writes carries no acTL animation chunk at all — it is a normal static PNG that happens to be named .apng. We verified this against the same assembler build the converter uses. To get real motion you need genuinely different frames: a burst of photos, a numbered export sequence, or successive stills of the same scene.

In what order do my frames play?

In the order you add them. The first file uploaded becomes frame one, the second becomes frame two, and so on, and every frame is held for the same interval set by the FRAMERATE control. If the sequence comes out wrong, remove the files and re-add them, or rename them with zero-padded numbers (01_, 02_, 03_) before uploading so the order is unambiguous. There is no per-frame reordering or per-frame timing on this page.

What happens if my photos are different sizes?

They are letterboxed onto a shared canvas rather than cropped. The converter measures every uploaded frame, takes the largest width and the largest height as the canvas, then scales each smaller frame to fit while preserving its aspect ratio, centres it, and pads the remaining area transparently. Nothing is stretched and nothing is cut off, but a set of mismatched photos will show transparent margins around the smaller ones. Uploading frames that already share dimensions avoids this entirely.

Will my photos lose quality going from JFIF to APNG?

The APNG stage adds no new loss — PNG compression is lossless, so each frame is stored exactly as it was decoded. What it cannot do is undo the loss already baked in: JFIF is JPEG, so whatever compression the original camera or editor applied is part of the pixels before this converter ever sees them. APNG simply stops any further degradation and preserves the result in full truecolour. The cost is size, since lossless full-colour frames are considerably heavier than a palette-quantised GIF.

Does the APNG loop, and can I make it play once?

It loops forever. The assembler writes an acTL chunk with a play count of zero, which the APNG specification defines as infinite repetition, and this page exposes no control to change that. If you need a single-play animation, you would have to edit the num_plays field in the finished file with an APNG-aware tool. In practice an infinite loop is what almost every use of a photo-sequence APNG wants, which is why it is fixed.

How do I keep the file size down?

Three levers exist here, and one more afterwards. Lower the FRAMERATE so fewer frames cover the same wall-clock duration; reduce Image resolution with a percentage or a preset so each frame carries fewer pixels; and upload fewer, more distinct frames rather than a long near-identical burst. The converter also runs a Zopfli optimisation pass over the finished animation automatically. If the result is still too heavy, compress APNG adds palette reduction and other levers that this conversion page deliberately leaves out.

Which browsers and apps will play the animation?

APNG plays for about 95.94% of browser users worldwide: Chrome 59 and later, Firefox 3 and later, Safari 8 and later, Edge 79 and later, and Opera 46 and later, on desktop and mobile alike. Internet Explorer never supported it and neither did the legacy EdgeHTML versions. Crucially, the fallback is graceful — a viewer that does not understand the animation chunks simply displays the first frame as an ordinary PNG, so the image is never broken, it just does not move.

Should I use APNG, GIF or a video file for this?

Use APNG when the frames are photographs and colour fidelity matters, which is the case for anything with skin tones, sky gradients or fine texture. Use JFIF to GIF when universal support beats quality, or when the frames are flat graphics where 256 colours is plenty. Use a video file when the sequence is long: a hundred-frame APNG of photographs will dwarf the equivalent MP4, because APNG stores every frame losslessly with no motion compensation between them. You can also convert an existing animation with APNG to GIF.

What happens to my photos after conversion?

They are uploaded over an encrypted connection, decoded and assembled on our servers, and deleted automatically after a few hours — never shared, never made public, no sign-up and no watermark. Each frame is decoded from JPEG to raw pixels and re-encoded as PNG data inside the animation, so the output is a genuinely new file rather than a repackaging of your uploads.

Rate Convert JFIF to APNG Online Tool

Rating: 0.0 / 5 - 1 reviews