Make a meme
Big text with a black outline on a short GIF, drawing on the browser's system fonts.
Guide
The GIF Toolbox handles four small jobs around animated images: “Combine images”, “Split frames”, “Add text” and “Change speed”. Combine first normalises the pictures to the aspect ratio of the first one on a browser canvas, then hands them to ffmpeg for a two-pass palette GIF; Split decodes a GIF/APNG/animated WebP into a set of PNGs; Add text divides the animation into frames at a uniform frame rate first, draws the text frame by frame with the browser's system fonts and composites it back; Change speed recalculates the frame timings.
Updated 2026-09-103 min read
The GIF Toolbox handles four small jobs around animated images: “Combine images”, “Split frames”, “Add text” and “Change speed”. Combine first normalises the pictures to the aspect ratio of the first one on a browser canvas, then hands them to ffmpeg for a two-pass palette GIF; Split decodes a GIF/APNG/animated WebP into a set of PNGs; Add text divides the animation into frames at a uniform frame rate first, draws the text frame by frame with the browser's system fonts and composites it back; Change speed recalculates the frame timings.
These are not the same kind of processing: Combine takes at most 60 images and widths of only 320/480/640px; Add text has a 300-frame ceiling; Change speed covers 0.25x–4x and automatically caps the result at 50 fps when the speed-up would go above it. The ffmpeg paths run on single-threaded ffmpeg.wasm inside the browser.
| Input | Output | Notes |
|---|---|---|
8 PNG product images |
A looping GIF 480px wide at 0.5 seconds per frame |
Height follows the first image's ratio and any gap is filled with the chosen background |
A 12 fps short GIF with the caption “Off work!” added |
Text drawn per frame with system fonts, then recomposed into a GIF |
Processes up to 300 frames |
A 20 fps GIF sped up to 3x |
The theoretical 60 fps is capped to 50 fps |
Frames are dropped automatically |
Big text with a black outline on a short GIF, drawing on the browser's system fonts.
Order several photos, give them one hold time and combine them into a GIF quickly.
Split a GIF/APNG/animated WebP into a pack of PNGs for single-frame editing.
0.5x for slow motion, 2x–4x to hurry a long demo along.
Splitting exports only the images and does not keep the per-frame durations, which may all have been different; recomposing uses one uniform frame duration.
The implementation splits frames first and then draws the glyphs frame by frame on a browser canvas with the system's fonts, so that it does not depend on a wasm build shipping CJK font resources.
Images and animations are processed locally in the browser by canvas and ffmpeg.wasm and are not uploaded; the first call to an ffmpeg path downloads about 31–32 MB of single-threaded core from the site's asset domain or jsDelivr.
Updated 2026-09-10
Make a GIF from images, split into frames, add captions, change speed — a one-stop meme workshop
Everything runs locally in your browser; files are never uploaded to a server