Make a GIF
Puts 2 to 20 photos in order and plays them as one animated GIF. You choose how long each photo stays up, how wide the result is and whether it loops. Nothing is uploaded — the photos are read and encoded in this browser tab.
GIF maker
Choose at least 2 photos to put in the GIF.
Photo order
No photos
Your GIF
When a few photos work better as one moving file
Some things only read once you see them change. A burst of shots of somebody catching a ball, the same shelf before and after you tidied it, a repair shown one step at a time, a two-frame reaction for a group chat — sending those as five separate attachments makes the person scroll and compare. As one GIF they play in the order you set, in one message, without anyone pressing play.
A before-and-after pair is the smallest useful case and often the most convincing one. Two photos, half a second each, looping forever: the difference sits in one spot on the screen and your eye picks it up immediately, which never quite happens when the two pictures sit side by side.
PDF and GIF both bundle several images into one file, but they are read differently. A PDF is a document somebody pages through at their own speed, so it suits receipts and paperwork you want kept together. A GIF moves on by itself at the interval you chose, so it suits anything where the change is the point. If you need sound as well, neither fits — that is a video file.
This tool takes two photos at the minimum and twenty at the most. With a single photo there is nothing to animate, so the button stays switched off. Reorder the list with the up and down buttons on each row; the GIF plays from the top of that list to the bottom and then either returns to the start or stops, depending on the looping setting.
Choosing the interval
The time per photo is how long one photo stays on screen. You can pick 0.1s, 0.2s, 0.4s, 0.7s or 1s. One loop lasts the number of photos multiplied by that interval, and the tool prints that figure above the list as you change it.
| Time per photo | 4 photos | 10 photos | 20 photos |
|---|---|---|---|
| 0.1s | 0.4s per loop | 1.0s | 2.0s |
| 0.2s | 0.8s | 2.0s | 4.0s |
| 0.4s (default) | 1.6s | 4.0s | 8.0s |
| 0.7s | 2.8s | 7.0s | 14.0s |
| 1s | 4.0s | 10.0s | 20.0s |
Short intervals suit frames that are nearly identical — a drawing gaining a few lines, a burst of shots a fraction of a second apart. Photos that differ a lot need longer, because at 0.1s the next one arrives before you have worked out what changed. Anything with writing on it, or a product you want people to look around, is worth starting at 0.7s or 1s and shortening from there. If the preview turns out too fast you do not have to pick the photos again: change the interval and press the button once more.
Looping forever is the default and is what you want for a reaction or a before-and-after. Play once suits a sequence with a real ending — a set of instructions, say — although whether it honours that depends on the app showing it, and plenty of them replay a GIF anyway.
Why a GIF gets heavy, and why the colours stop at 256
A GIF frame does not store colours the way a photo does. It stores a list of colours plus one entry per pixel pointing into that list. That list holds 256 entries at most, which is where the number comes from — it is the format, not a setting we chose. Before each frame is written, this tool works out which colours in that photo are worth keeping, builds the list, and maps every pixel to the closest one it can find. You can cut the list to 128 or 64 in the Colours menu.
That is fine for a logo, a screenshot or a line drawing, where a handful of flat colours cover the whole picture. It shows on anything with a gradual change across it — a clear sky, skin, a shadow falling across a wall. Those areas hold hundreds of near-identical shades, and once they are forced into 256 the shading arrives in visible steps instead of a smooth run.
Several photos can add up to more than the photos you started with. Every frame is a whole picture, written out again at the width you chose, and a GIF has no way to compress a photograph the way JPG does. Ten photos means ten full frames in one file. On 2026-08-31 the four sample photos in this repository were repeated in order into ten frames and made at 480×360px, 256 colours and 0.4s: the file came out at 879,444 bytes, which the tool rounded to 859KB, with a 4.0s loop. Your own photos will land somewhere else entirely — grass, hair, foliage and crowds all carry far more detail than a flat graphic, and each frame pays for it.
If the file is too heavy for where you are sending it, the width does the most work: dropping from 640px to 320px quarters the number of pixels in every frame. After that, take out frames you do not need, then try 128 colours. Cutting the colours does not always shrink the file by much, so watch the byte count printed under the preview instead of assuming.
Where people get caught out
Each photo keeps its own shape
The first photo in the list sets the shape of the whole GIF. A landscape first photo gives you a landscape GIF, a portrait one gives you a portrait GIF. The photos after it are not cropped — they are scaled down to fit inside that frame, and whatever is left over is filled with white. If you have mixed portrait and landscape shots, decide which shape you want first and move a photo of that shape to the top of the list.
Fewer colours always means a smaller file
Sometimes it barely moves the number. How much a shorter colour list saves depends on the photos. A logo or a screenshot loses very little size and very little quality; a photograph full of gradual shading can lose noticeable quality without the file getting much lighter. Change the setting, make it again and compare the bytes printed under the preview — the figure is there so you do not have to guess.
The GIF comes out at the original size
Width is a setting, not your photo's size. Every frame is redrawn at 240, 320, 480 or 640px wide, whatever the originals measured. Because the frames are redrawn rather than copied, the original files' metadata does not travel either — no capture location, no camera or phone model. Each photo you add has to be under 10MB, under 25 megapixels and 6,000px or less on its long edge, and that check reads the file's own header rather than trusting its name.
A transparent PNG stays transparent
Transparent areas come out white. Every frame is drawn onto a white canvas first, so a PNG with a see-through background loses it here. If you need animation that keeps its transparency, this is not the tool for it. When the GIF is ready, watch the preview actually play, check the size, frame count and bytes on the line underneath, and then save — the file arrives as blurmate.gif.