Initializing... drag & drop files here
Supports: DNG
If you shot a burst, a bracket, or a timelapse and want the frames to play as one looping image, the only real decision is APNG or GIF. Short answer: pick APNG when the frames are photographic — skies, skin, gradients, anything with subtle colour — because APNG keeps 24-bit truecolour and lossless compression, while GIF has to crush every frame into a 256-colour palette. Pick GIF only when the destination is an old client that cannot display an animated PNG. This tool takes your .dng files, renders each one to a frame, and assembles them into a single looping APNG.
| Property | APNG (this output) | GIF |
|---|---|---|
| Colour per frame | 24-bit truecolour (16.7 million) | 256 colours, indexed palette |
| Transparency | 8-bit alpha, smooth edges | 1-bit, hard on/off only |
| Frame compression | Lossless (zlib/Deflate, no colour thrown away) | Lossless LZW, but only after palette quantisation |
| Specification | W3C PNG Third Edition, Recommendation of 24 June 2025 (section "APNG: frame-based animation") | CompuServe GIF89a, 1989 |
| Animation chunks | acTL, fcTL, fdAT — ignored by non-animating decoders |
Native to the format |
| Browser support | 95.9% of tracked global traffic (Chrome 59+, Firefox 3+, Safari 8+, Edge 79+, Opera 46+) | Effectively universal |
| Behaviour in a viewer that can't animate it | Shows the static first frame — the image never breaks | n/a |
| Typical size for a photographic sequence | Larger — nothing is discarded | Smaller, at an obvious colour cost |
.gif — some forums, ad slots, and legacy CMS uploaders still are..dng files onto the page or click "+ Add Files". The listed order is the frame order, so add them in the sequence you want them to play — camera filenames such as IMG_0001…IMG_0048 already sort correctly.The Framerate value sets an exact per-frame delay of 1/FPS, so the length of the animation is simply frame count divided by framerate.
| Framerate setting | Delay per frame | 24 DNG frames play for | Typical use |
|---|---|---|---|
| 1 FPS (Slideshow) | 1 s | 24 s | Stepping through a bracket or a before/after |
| 5 FPS | 0.2 s | 4.8 s | Slow timelapse, cloud movement |
| 10 FPS (default) | 0.1 s | 2.4 s | General-purpose burst playback |
| 25 FPS | 0.04 s | ~0.96 s | Near-video smoothness from a fast burst |
| 50 FPS (Max Speed) | 0.02 s | ~0.48 s | Very short, very smooth loops |
Each DNG is first re-rendered into a clean PNG frame: the RAW is demosaiced and tone-mapped to ordinary 8-bit sRGB, and oversized frames are brought down to at most 4096 px on the long edge so the assembler can handle them. Our pipeline then hands the frames to apngasm with an exact 1/FPS delay and an infinite loop count, and finishes with a Zopfli optimisation pass to shave bytes without touching pixels. If your files have different dimensions — say you mixed a cropped export into the sequence — each frame is centred on a shared canvas sized to the largest frame, with the surrounding area left transparent rather than stretched. Upload a single DNG and there is no animation to assemble, so what you get back is an ordinary static PNG without the animation chunks — a clean rendered still rather than a one-frame loop.
No, and no pixel format would. A DNG stores 12–16-bit linear sensor data with editing latitude; APNG frames are 8 bits per channel in sRGB, the same ceiling as PNG, JPG, or GIF. The conversion demosaics and tone-maps each RAW into a rendered frame, so what you see is one interpretation of the scene. Grade highlights and shadows in RAW software first, then animate the exports.
You get a single-frame-looking APNG rather than an error. The assembler needs at least two frames to produce a valid animation, so a lone image is repeated — the file plays as a still. If a static image is what you actually want, DNG to PNG is the correct tool and produces a smaller file.
Frame order follows the order the files appear in the upload list before you press Convert, which normally matches the camera's filename sequence. Rename or reorder your DNGs if the burst needs to run in a different direction — there is no reverse or shuffle option in the converter.
It shows the first frame as an ordinary static PNG. That fallback is built into the format: the animation lives in ancillary acTL, fcTL, and fdAT chunks, and a decoder that doesn't recognise them renders the base image and ignores the rest. Support currently covers about 95.9% of tracked global browser traffic.
Because nothing is discarded. APNG stores every frame losslessly at full colour depth, and photographic RAW frames change in almost every pixel between shots, so inter-frame savings are small. Cut the size by lowering Image resolution, trimming the number of frames, or accepting a palette by converting to GIF instead. You can also run the finished file through APNG compression, which exposes file-size targets and an Auto Scale option that the converter does not.
Not here. The Framerate dropdown applies one uniform delay of 1/FPS to every frame, which is what a burst or timelapse wants. Variable per-frame timing requires an APNG editor that writes custom fcTL delays for each frame.
Forever. The assembler writes a loop count of zero, which the PNG specification defines as infinite repetition. There is no play-once option in this converter.
Ideally, yes — a burst straight from one camera already is. If they differ, each frame is scaled and centred on a common canvas sized to the largest one, and the leftover area is transparent. Mixing portrait and landscape shots in one sequence therefore produces visible empty margins around the narrower frames.
Your DNGs travel over an encrypted connection, are converted on our servers, and are deleted automatically after a few hours. There is no sign-up, no watermark, and files are never shared or made public. The practical constraint on a long RAW sequence is upload size and time, since DNG files routinely run 20–60 MB each.