Images to GIF
Drop the frames in order, choose how long each one holds, and encode a real .gif — no video editor, no upload, no watermark.
How Images to GIF works
The image is decoded into a canvas element, redrawn, and handed back as a new file. A canvas lives in the tab; closing it discards the pixels, which is why nothing needs deleting afterwards. Nothing is re-encoded on a server, so no copy of the original survives anywhere you cannot see.
That is the whole architecture: static files, one script, no upload endpoint to leak or log. Close the tab and the work is gone.
A GIF is a palette, not a video
The format dates from 1987 and stores at most 256 colours per frame. Every frame is quantised to that palette, which is why a photograph shows banding while a screenshot or a logo comes out perfect.
The encoder does two things worth knowing: it builds the palette per frame (so a mostly blue frame keeps its blues), and it can store only the pixels that changed between frames. A static background therefore costs almost nothing, which is why screen recordings compress far better than camera footage.
Frame timing and looping
Delay is stored in hundredths of a second per frame. 200 ms is a slideshow, 80 ms looks like motion, and anything under 40 ms is rounded by browsers into something faster than you asked for.
The loop flag is a single number in the file header: 0 means forever, -1 means play once. This tool writes 0 when the loop box is ticked, so the animation repeats for everyone who opens it.
| Setting | What it does |
|---|---|
| Width | Scales every frame, keeps the first image's ratio |
| Delay | Milliseconds each frame stays on screen |
| Loop | 0 = forever, -1 = play once |
| Quality | Lower number = better palette, larger file |
Why encode in the browser
An upload-based GIF maker has to receive every frame, encode on a server and send back a file that can be several megabytes. Doing it in the tab means the photos never leave the device and the finished GIF is written straight to disk.
The work runs in a Web Worker, so the page stays responsive while the palette is built.
Good to know
- Works offline once loaded, including on flights and in locked-down networks.
- No file size limit beyond your device's own memory.
- Free to use, with no account and no usage counter.
- Results are produced locally, so they are not logged or shared with anyone.
Questions
How many images can I use?
Up to forty frames. Each one is scaled to the width you pick and cropped to the first image's aspect ratio so the animation does not jump.
Why do my photos look slightly posterised?
The GIF format stores a maximum of 256 colours per frame. Photographs with smooth gradients show that limit; flat graphics and screenshots do not.
Can I control the speed?
Yes. The delay slider sets milliseconds per frame — 100 ms is fast, 500 ms is slow, 200 ms is a natural slideshow.
Is anything uploaded?
No. The frames are drawn to a canvas and encoded by gif.js inside this tab, using a worker thread.
Photo cleanup tools
Keep going
More image tools
Photo Editor
Edit a photo in the browser: rotate, flip, change brightness, contrast, saturation, blur, grayscale, sepia or hue, add a caption and export JPG, PNG or WebP.
Open toolCrop Image
Crop any image with a draggable box: free crop or fixed ratios for square, 4:3, 16:9, 4:5, 9:16 and passport 35×45. Rotate first, then download a clean PNG.
Open toolAdd Text to Photo
Put text on a photo: pick a font, size and colour, add an outline and a shadow, drag the text where it belongs, and download a full-resolution JPG.
Open toolBatch Image Compressor
Drop 5 or 500 photos, cap the width and the size per image, and download everything as one ZIP. No 20-file ceiling, no daily quota, no upload.
Open toolBatch Image Watermark
Stamp your own text on dozens of images at once, choose position, size, opacity or a tiled pattern, then take one ZIP. No watermark of theirs added.
Open toolBatch Image Resizer
Resize a folder of photos to one width, height or square crop, then download them as a ZIP. No batch cap, no watermark, no upload.
Open tool