GIF Maker: Make an Animated GIF From Pictures
Turn photos, screenshots and drawings into one looping GIF in your browser. Reorder the frames, set the delay and loop, add captions and see the file size before you save. Nothing is uploaded.
Your file is ready
- Files stay on your device. Nothing is uploaded.
- Free, no sign-up, no daily limit.
- Works with Wi-Fi off once the page has loaded. Check it yourself
Updated by Khokhar Sab
How do I make a GIF from pictures?
Press Choose pictures, or drop or paste files onto the page, and the frames appear in a list with a live preview. Reorder them, set the delay and loop, then press Make GIF and Download. The tool opens JPG, PNG, WebP, AVIF, BMP and iPhone HEIC pictures. Your browser builds the GIF, and nothing is uploaded.
- Press Choose pictures, drop files on the page, or paste a copied picture with Ctrl+V. Each picture becomes one frame.
- Drag a row, or use the arrows, to put the frames in order. Type a caption or a delay on any row that needs one.
- Set the delay, the loop, the longest side and how pictures fit the frame. Watch the preview play and the estimated size update.
- Press Make GIF, then Download. The result shows the finished GIF playing and its real file size.
The first picture sets the shape of the GIF in Fit and Crop modes. With the longest side at 480 pixels, a 4000 x 3000 first picture gives a 480 x 360 GIF. Fit keeps every picture whole and fills the gaps with the background color: a 400 x 200 picture in a 100 x 100 frame is drawn 100 x 50 with 25 pixels above and below. Crop to fill covers the frame and trims the edges: the same picture is drawn 200 x 100 and loses 50 pixels on each side. Pad keeps each picture at its own size, centered. To change how big the source photos are first, use Resize Image, or turn HEIC photos into JPG with HEIC to JPG.
What is the best frame delay for a GIF?
It depends on what the frames show. A slideshow of pictures reads well at 500 to 1000 milliseconds per frame, while smooth motion needs about 100 milliseconds or less. A GIF stores each delay in hundredths of a second, so 100 ms is stored as 10 and the shortest delay this tool writes is 20 ms.
| Delay you type | Stored in the file | Frames per second | Play time, 10 frames |
|---|---|---|---|
| 20 ms | 2 hundredths | 50 | 0.2 seconds |
| 50 ms | 5 hundredths | 20 | 0.5 seconds |
| 100 ms | 10 hundredths | 10 | 1 seconds |
| 200 ms | 20 hundredths | 5 | 2 seconds |
| 500 ms | 50 hundredths | 2 | 5 seconds |
| 1000 ms | 100 hundredths | 1 | 10 seconds |
The GIF89a specification defines the delay as a count of hundredths of a second, so 25 ms cannot be stored: it rounds to 3 hundredths, 30 ms. Some viewers play a delay of 0 or 1 hundredth more slowly than stored, so this tool never writes less than 2. Each picture can carry its own delay, so a title frame can stay on screen for 2000 ms while the rest run at 100 ms. The play time under the preview adds up every frame's stored delay.
How do I make a GIF loop?
Leave Loop on Forever and the GIF repeats until the viewer leaves the page. Choose a set number of plays to stop after that many runs. The file stores the repeat count in a NETSCAPE2.0 extension block, and one play writes no block at all, because a GIF without it shows once. Ping-pong order plays forward, then back.
Ping-pong plays forward and then backward without repeating the end frames, so frames 1 2 3 4 play as 1 2 3 4 3 2 and the loop restarts on frame 1. That makes a smooth back-and-forth from a short run of pictures, at the cost of a bigger file: in our test, 10 frames came to 586 KB in order and 1.0 MB as ping-pong with 18 frames. Reverse plays the list from the last picture to the first.
Why do GIFs have only 256 colors?
The GIF format stores each pixel as an index into a color table, and the specification allows a table of at most 256 entries, so one index fits in 8 bits. A photo has thousands of distinct colors, so a GIF maker must pick the best 256 and map every pixel to one of them. That reduction is called quantization.
The tool uses median cut: it puts every color of the picture in one box, repeatedly splits the busiest box at the middle of its widest color channel, and averages each final box into a palette entry. A picture with 256 or fewer distinct colors keeps them exactly, so flat artwork is never changed. Dithering (Floyd-Steinberg) spreads the leftover error from each pixel to its neighbors, which turns hard bands in skies and gradients into fine grain. The cost is size: on our photo test, dithering added about 3 percent to a 20-frame GIF (1.1 MB against 1.1 MB). Flat graphics barely change: our 20-frame chart sequence used 59 colors and came to 34 KB with dithering and 34 KB without.
You can also pick One palette for the whole GIF or A palette for each frame. A shared palette stores the color table once and keeps colors steady from frame to frame; per-frame palettes fit each picture better but repeat a table up to 768 bytes long in every frame. On our test, 20 photo frames were 1.1 MB with one palette and 1.2 MB with a palette per frame.
How do I make a GIF file smaller?
Use fewer frames, a smaller longest side, fewer colors and a shared palette, in that order of effect. The page shows an estimated file size as you change each setting, so you can stop when the number fits. Switching dithering off trims a few percent more. A short video file is far smaller than a GIF.
| Frames | Dithering on | Dithering off |
|---|---|---|
| 5 | 294 KB | 284 KB |
| 10 | 586 KB | 569 KB |
| 20 | 1.1 MB | 1.1 MB |
| 40 | 2.3 MB | 2.2 MB |
| Colors in the palette | File size | Smaller than 256 colors |
|---|---|---|
| 256 | 1.1 MB | Baseline |
| 128 | 966 KB | 18 percent |
| 64 | 779 KB | 34 percent |
| 32 | 616 KB | 48 percent |
| 16 | 466 KB | 60 percent |
The test sequence is a slow pan and zoom across the libheif example photo at 320 x 214 pixels. Photos are the hard case for GIF because every frame has fine grain, and each frame cost about 59 KB. A chart or drawing with flat colors compresses far better: 59 colors, 20 frames, 34 KB. Size also scales with area, so halving the longest side leaves about a quarter of the pixels. For a page on the web, the web.dev article on replacing animated GIFs with video explains why a video file does the same job in a fraction of the bytes.
Can I post a GIF on social media?
Often yes, but each service sets its own rules for GIF file size, length and shape, and some convert an uploaded GIF into a looping video. Check the upload help page of the service you use before you pick a size. Keep the file small, the longest side modest, and the first frame a good still picture.
The first frame matters because some places show a still preview until a viewer plays the GIF, so put your best picture first. This tool does not target a particular service, and the limits on any one of them can change, so the safest route is to read that service's own help page for current GIF limits and use the file size line under the preview to stay under them. For a GIF on your own page, the web.dev article linked below compares the GIF and video options.
How do I add text to a GIF?
Type a caption in the Caption box on any frame row. The text is drawn along the bottom of that frame in bold white with a dark outline, wrapped to the frame width, in a bundled font so it looks the same on every device. Leave the box empty for no text. Each frame keeps its own caption.
The caption font is DejaVu Sans Bold, loaded from this site only when the page needs it. Text size follows the frame height (7.5 percent of it), so a small GIF gets small text. Captions are part of the pixels, so they take colors from the palette: a white and black caption on a photo adds a few palette entries, which matters little at 256 colors but shows at 16.
Limits
- Pictures: up to 200 per GIF. A phone holds fewer long GIFs comfortably, so use a smaller longest side there.
- Colors: 256 per palette at most, 255 plus one see-through entry when transparency is on.
- Transparency: off by default. When on, pixels at least half see-through become the see-through color and the rest are fully solid, so soft edges look rough. A GIF has no partial transparency.
- Animated GIFs as input: only the first frame of each is used. To save that frame alone, see GIF to PNG.
- Video: this tool starts from pictures and does not open video files.
- Colors and metadata: color profiles and camera details are not kept. Photos are turned upright by their camera orientation first.
- Test figures: the sizes above come from one test photo and one chart. Your pictures will land higher or lower, and the estimate on the page is the better guide.
Frequently asked questions
Is the GIF maker free?
Yes. There is no sign-up, no watermark and no limit on the number of GIFs, only the 200-picture cap on each one.
Are my pictures uploaded?
No. Your browser opens each picture, draws the frames, picks the palette and writes the GIF file. The page has no upload step, so a private photo never leaves your device.
Can I use iPhone photos?
Yes. HEIC photos open and are turned into frames like any other picture, and their camera orientation is applied first.
Does the GIF keep transparency?
Only if you turn it on. It is off by default, and the background color then fills any see-through areas. A GIF can mark a pixel fully see-through or fully solid, with nothing in between.
Does it work on a phone?
Yes. Choose pictures from your photo library or files. Long GIFs use a lot of memory on a phone, so keep the longest side at 480 pixels or less for a big set.
Can I make a GIF from a video?
Not here. This tool builds a GIF from pictures. Save frames from the video as pictures first, then add them.
Related PDF tools
How this tool was built and tested
- W3C: Graphics Interchange Format, Version 89a (1990 specification): color table size, the delay in hundredths of a second, graphic control extension, LZW codes
- MDN Web Docs: Image file type and format guide: where GIF fits among web image formats
- web.dev: Replace animated GIFs with video for faster page loads: why a short video is smaller than the same GIF
- MDN Web Docs: createImageBitmap(): the imageOrientation option that applies the EXIF turn
- Test method: libheif example photo (320 x 214 after a slow pan and zoom) and a flat chart sequence, encoded with this site's own GIF code and decoded again to confirm every file, in src/tools/gifmaker/gif.bench.test.ts, 2026-10-18