SmallNook

GIF Maker

Drag your pictures here to string them into a GIFor click to browse

Animation heavier than you wanted? Squeeze it down

Got a clip rather than photos? Cut a GIF out of it

About this tool

How this GIF maker works

Drop your pictures, drag them into the order you want, pick a pace, download the animation. Your browser decodes each file, draws it into one shared frame and writes the GIF bytes itself. No picture is uploaded and no account is asked for.

The first picture decides everything about the canvas. Its proportions become the animation's proportions, and its long side is capped at 640 pixels. Eight 2000 × 1333 photos come out as a 640 × 427 GIF. Nothing gets enlarged, so a stack of 300-pixel thumbnails stays 300 pixels.

Every picture after the first is fitted inside that canvas at its own proportions, with white filling whatever is left over. Squeezing a portrait shot sideways to fill a landscape frame is the other way to do it, and nobody wants a friend's face made wider. A picture smaller than the frame stays its own size in the middle rather than getting blown up, and the card counts every picture that leaves white showing.

One color table is then built from up to eight pictures spread across the stack, all 255 shades of it, and every frame is written against that table. Sharing one table across the animation is what keeps a GIF from carrying a fresh palette in every single frame.

Real numbers, from eight photographs off Wikimedia Commons at 2000 pixels wide, 1.4 to 4.7 MB each and 17.9 MB together:

  • 2 pictures: 264,725 bytes, 0.9 seconds
  • 4 pictures: 434,044 bytes, 0.9 seconds
  • 6 pictures: 582,898 bytes, 1.4 seconds
  • 8 pictures: 744,198 bytes, 1.4 seconds
  • 24 pictures: 2,300,664 bytes, 3.5 seconds

That is about 85 KB per extra photograph. The pace you choose does not move it by a single byte: 6 photos on Slow and the same 6 on Fast both came out at 582,898 bytes, because a frame delay is two bytes in the file whatever it says.

When you'd reach for it

  • A before-and-after. Two photos of the same room, one second each on Slow, and the difference reads at a glance. That pair weighs 264,725 bytes.
  • A burst from your camera roll. Ten shots of a dog shaking itself, Fast, and you have a moving picture nobody had to film.
  • A progress sequence. A build, a plant, a haircut, a whiteboard filling up. Drag the rows until the order matches the story.
  • An avatar or a small banner. A GIF plays by itself in a forum post, a wiki, an old-school signature and most chat apps, with no player and no click.
  • A slide you cannot embed video into. Some content systems take an animated GIF where they will not take an MP4.

What this tool cannot do

Every picture holds for the same time. One pace applies to the whole stack. Letting photo three sit for two seconds while photo four flashes by needs a timeline, and there is no timeline here.

The first picture rules the canvas. Drop a portrait shot first and every landscape one after it sits on white. A 200-pixel screenshot among 4000-pixel photos stays a 200-pixel patch in the middle of the frame, because filling that space would mean inventing pixels it never had. Reorder the list so the picture you want to set the scale leads.

640 pixels on the long side, and never larger than what you brought. A GIF writes out every pixel of every frame, and two unrelated photographs share nothing the encoder can skip, so the width you pick is paid for once per picture. At 640 a set of photos still lands where a chat app will take it.

255 colors for the whole animation, not per picture. Photographs band, and a set of pictures shot in different light bands worse, because one table has to cover all of them. Skies and skin show it first.

No crossfades, no wipes, no captions, no stickers, no text. Pictures cut from one to the next. That is the whole vocabulary.

No sound, ever. GIF has never carried an audio track, and no setting anywhere will add one.

A video will not go in. This page reads still pictures. Pulling frames out of a clip is a different job with a different control, because the first thing you need there is a way to say where the clip starts.

An animated GIF you drop in becomes one still. The browser hands over its first frame and nothing else, so a GIF among your photos contributes exactly one picture to the new one.

HEIC photos from an iPhone are refused. Only Safari decodes HEIC, so the picker turns those files away rather than letting the run die halfway. Set your phone to Most Compatible, or convert the files to JPEG first.

40 pictures is the ceiling. That is 16 seconds of animation at the middle pace and roughly 4 MB, past which nothing you want to send it to will take it.

The animation is gone when you leave. There is no project to save and nothing to come back to. Download the GIF before you close the tab.

Frequently asked questions

How many photos should I use?

Between 4 and 12 for anything meant to be watched. Two is enough for a comparison. Past 20 the file grows faster than the idea does, at about 85 KB a picture, and people stop watching before it loops.

Can I make one picture stay longer than the others?

No. The pace applies to the whole stack. The nearest thing to a workaround is dropping the same picture twice in a row, which doubles the time it holds.

Why is my GIF only 640 pixels wide?

Because the next size up costs more than it gives. Doubling the width means four times the pixels, and every one of them gets written for every picture. At 640, eight photographs came to 744,198 bytes. The line above the button shows the exact canvas before you press it.

Why does one of my photos have white bars?

Either it is a different shape from the first picture or it is smaller than the frame, and the tool fits it in rather than stretching it. The card above the pace row counts how many pictures that hits. Move one of the right shape and size to the top of the list, or crop the odd ones first.

Does it loop?

Yes, forever, unless you switch the toggle beside the plan line to Plays once. That writes a file with no looping block at all, which browsers and chat apps read as a single pass.

What order do the pictures play in?

Top to bottom, exactly as the list shows them. Drag a row to move it, or use the arrows on the row for a touchscreen. The list is the animation.

Do my photos leave the browser?

They do not. Clicking the button fetches the encoder from this site, and the pictures themselves stay in the tab. Nothing is queued, stored or sent.

Why do the colors look flat?

One 255-color table has to cover every picture at once. A single photograph might use thousands of shades, so a sunset in picture two and a snowfield in picture five end up sharing the same handful of tones. Fewer pictures with closer colors band less.

How long does it take?

Eight 2000-pixel photos took 1.4 seconds and 24 took 3.5, measured in Chromium on a desktop. Most of that is decoding the JPEGs. A phone will take several times longer, and the button sits there while it does.