Turn a series of images — or a segment of an MP4 or WebM video — into an animated GIF, entirely inside your browser. Pick the width, frame timing, loop count, palette size and dithering, watch the size estimate, and download one .gif file. Nothing is uploaded: your files never leave your device.
No upload — runs in your browser
Free, no sign-up
No watermark
Up to 640 px wide and 100 frames.Unsupported containers cannot be decoded — try MP4 (H.264) or WebM.
Drop images or a video to start
PNG, JPG, WebP or GIF files, or one MP4 or WebM video. Everything runs in your browser.
An animated GIF input is read as one still frame — GIF back to frames is not supported here.
One output: a single .gif, with an honest size estimate
Everything on this page feeds one file. You choose the width (the height follows the shape of your first frame), how long each frame stays on screen, whether the animation loops forever or a fixed number of times, and how many colours the palette may use. Because GIF size depends on content in ways no formula can promise, the page shows a size estimate before you download — a magnitude, not a budget — and tells you exactly which knob makes it smaller: width, frame count, or palette size.
Setting
What it changes
Width (px)
16–640, in steps of 8. Height follows the first frame's aspect ratio, even-normalised so no decoder misaligns a row.
Frame duration
20–2000 ms for every frame, with a per-frame override in the image path for stop-motion timing.
Loop
Forever, or 1–5 additional plays — written into the GIF exactly as your browser reads it.
Colours
256 down to 32. Smaller palettes shrink the file and posterise gradients.
Dithering
Ordered Bayer dithering that trades a little noise for much smoother gradients.
Background
What fills transparent areas: keep transparency, or flatten onto white, black or a colour you pick.
Two inputs, one pipeline
The image path treats every file as one frame: the order you arrange is the order it plays, and each frame can carry its own duration. The video path seeks through an MP4 (H.264) or WebM file and lifts the frames inside your segment. Both paths hand their frames to the same encoder with the same settings, so a sequence and a clip of the same length look and weigh the same.
Video support follows your browser: containers the browser cannot decode — HEVC, AVI, WMV and friends — are not offered and will not silently produce an empty file. An animated GIF used as input is read as a single still frame; GIF-to-frames editing is a different tool.
Built to stay responsive at the frame limit
Encoding a hundred frames takes real work, so it runs in a web worker with a live progress bar, and a Cancel button that stops it immediately. Frames are handed to the worker one at a time — the page never holds every decoded frame in memory at once, which is what keeps a 640-pixel, 100-frame job from exhausting the tab.
Everything happens on your device. Your images and videos are read by the page, encoded by your browser, and downloaded straight back — nothing is uploaded, and closing the tab leaves nothing behind.
Frequently asked questions
How do I make a GIF from images?
Choose several images — PNG, JPG, WebP or GIF files — in the order you want them to play. Reorder frames with the arrow buttons, set a frame duration (or override individual frames), and the GIF builds as you adjust. You get one .gif file ready to download.
How do I turn a video into a GIF?
Switch the input to Video, pick an MP4 (H.264) or WebM file, and set the segment start, segment end and frames per second. The tool seeks through the video, extracts exactly the frames in that segment, and encodes them with the same settings as the image path.
What are the limits?
Up to 640 pixels wide and 100 frames. If you add more frames than the limit, the first 100 are used and the page says so explicitly — it never truncates silently. There is no file-size target for the output: the page shows a size estimate instead of promising a number it cannot control.
Why does my GIF look posterised, and what does Dithering do?
A GIF stores at most 256 colours per frame, so gradients can band. Dithering interleaves the available colours to fake in-between shades and visibly smooths gradients. It is ordered (Bayer) dithering, chosen because it is fast enough to stay interactive even at the frame limit.
Is my video or my images uploaded anywhere?
No. Decoding, resizing, quantising and GIF encoding all happen inside your browser, in a web worker on your own device. There is no upload step and no copy of your files anywhere else.
This site sets no advertising or tracking cookies. Your files are processed in your browser and never uploaded — the only thing stored is this choice, on your own device. Privacy policy