GIF Maker
Multiple images → animated GIF. Drag to reorder, set frame delay, loop count. Browser-side via gif.js Web Worker.
Multiple images → animated GIF. Drag to reorder, set frame delay + loop count, resize. Browser-side via Web Worker.
GIF Maker combines a sequence of images into a single animated GIF file. Drop in 2 or more frames, drag to reorder, set frame delay + loop count + dimensions, click Generate. The encoder ([gif.js](https://github.com/jnordberg/gif.js)) runs in a Web Worker so the browser stays responsive even with 50+ frames at high resolution.
Use it for: turning a burst of phone photos into a moving image, making product showcases for a listing page, building short tutorial loops from screenshots, creating reaction GIFs for chat, or any 'I have frames, I want them animated' workflow that doesn't need video editor complexity.
Free, no signup, browser-side. Your frames + the encoder stay in your tab. No upload to a third-party GIF service that may strip or watermark.
Key features
- Drag to reorder frames — Each frame shows as a thumbnail with frame number. Drag-and-drop to reorder before encoding.
- Frame delay 20-2000ms — 20ms = 50 fps (cinematic), 200ms = 5 fps (smooth animation), 500ms = 2 fps (slideshow), 2000ms = 0.5 fps (very slow stop-motion).
- Loop count — 0 = forever (default, what most GIFs do), 1-10 = play N times then stop.
- Resize on the fly — Set output width × height (defaults to first frame's dimensions). Smaller = smaller file size.
- Quality control — 1-30, lower = better quality + larger file. Default 10 is a good balance.
- Live progress bar — Encoder reports percentage progress as it processes frames.
- Browser-side Web Worker — Encoder runs in parallel via Web Worker — UI stays responsive even on a 100-frame, 1920px GIF.
How to use
- Step 1: Add frames — Drop multiple images (PNG/JPG/WebP) into the upload zone, or click. Add at least 2.
- Step 2: Reorder + remove — Drag thumbnails to reorder. Hover over a thumbnail and click the × to remove a bad frame.
- Step 3: Adjust settings — Frame delay (default 200ms = 5fps), loop count (default forever), dimensions (default = first frame), quality.
- Step 4: Generate + download — Click Generate GIF. Progress bar shows encode status (~5-30s depending on frame count + size). Preview the result, click Download.
When to use
- Burst photo → GIF — phone burst (10-30 photos) becomes a 1-3 second motion clip
- Tutorial step screenshots — screenshot each step, make a GIF for a blog post
- Product 360° showcase — 8-12 angle shots become a rotating product GIF
- Stop-motion animation — phone photos of a doll or clay → simple stop-motion
- Reaction GIFs from video — extract a few frames from a clip, assemble as a reaction GIF (no audio = much smaller file)
- Loading indicator design — design 4-8 frames in Figma, export, assemble as animated loader
- Email-safe motion — most email clients support animated GIF but not video. GIFs in marketing emails
Frequently asked questions
Why GIF instead of MP4 or WebM?
GIF is universally supported (every browser, email client, chat app since 1990s). MP4/WebM produce smaller files but aren't supported in many places. For modern web embedding, MP4 is better; for chat / email / forums / wikis, GIF is still king.
Max number of frames?
Tested with up to 100 frames at 800×600. Above that, browser memory may become an issue. For longer animations consider lower resolution or fewer frames.
Why is my GIF file so big?
GIF uses simple LZW compression with a 256-color palette per frame. Lots of frames + high resolution + photographic content = big file. Tips to shrink: reduce dimensions, drop FPS (longer delay), reduce frame count, lower quality slider (1 = highest quality / largest, 30 = lowest / smallest).
Can I trim a video into a GIF?
v1 only accepts image frames. Video-to-GIF is on the roadmap (requires ffmpeg.wasm — large bundle). For now, extract video frames externally (e.g., ffmpeg -i video.mp4 frame-%03d.png) then upload them here.
Why does the GIF have a colored fringe / banding?
GIF's 256-color limit produces dithering. Photo content with smooth gradients quantizes poorly. Try increasing quality (lower number) or accept that GIF is an old format. For photo-realistic motion, MP4/WebM is much better.
How is image quality preserved?
Each frame is drawn to a canvas at the target dimensions (preserved aspect, white background fill if image doesn't match aspect), then sent to the GIF encoder. Original pixels are not re-encoded — only quantized to 256 colors per frame.
Does the GIF loop work in all viewers?
Browsers (Chrome/Firefox/Safari/Edge) honor the loop count. Some chat apps strip loop count and play once. Most email clients respect loop count.
Related tools
Image Compressor
Compress JPG, PNG, WebP images with adjustable quality. Browser-side, no upload, real-time preview.
Image Converter
Convert images between PNG, JPG, WebP, AVIF formats. Batch support, browser-side. No upload.
Image Resizer
Resize JPG, PNG, WebP images to any dimensions. Browser-side, no upload, no quality loss for downscaling.