Turn several photos into one GIF and set the time and order of each frame
GIF Maker combines photos or GIFs into a single animated GIF. Every photo you add becomes one frame, and in the filmstrip below, the width of a cell is how long that frame stays on screen. The four example photos that load at the start (1 second each) come to 367 KB at a 480 px long side, and 1.96 MB once you switch on the crossfade between frames. Each time you change a setting, the GIF is actually built again and its real file size is shown.
Photos are processed only inside the browser you are using and are never sent to a server. Check the motion with the play button, then press "Save GIF" to download the file right away.
Why make a GIF instead of a video
A GIF has no sound, but you can drop it into a web page like any ordinary picture, and it plays by itself and repeats the way you set it. Nobody has to press play, so GIFs are a common choice for short actions and step-by-step demos.
- How-to demos: capture each step of an app screen and move on every 1 to 2 seconds. It shows the sequence faster than a long paragraph.
- Before and after: alternate between two shots, such as a photo before and after editing or a room before and after tidying. With crossfade on, the changes appear gradually.
- Photo sets: pack photos from a trip or an event into one file that plays in one go.
- Drawn animation: photograph drawings that change a little each time and flip through them at around 0.1 seconds per frame for a short animation.
Every place you upload to has a file size limit, so it helps to check the size before you save. For example, images and GIFs attached to a GitHub issue or pull request can be up to 10 MB.
How to make one
- Choose photos or GIFs, or drag them onto the workspace. Copied images can be pasted with Ctrl+V (⌘V on a Mac). The first files you add replace the example, and later ones are added at the end. Files chosen together are placed in the order of the numbers in their names (1, 2, 10).
- Set the order in the filmstrip. Drag a cell to move it, or select a cell and use the arrow buttons under the stage to move it one step at a time.
- Set the timing. Use the "All frames" buttons at the top to set every frame at once. For a single frame, drag the right edge of its cell or type a number in the "This frame's time" box.
- Pick an aspect ratio and a long side. "First frame" keeps the ratio of the first photo. If your photos have different ratios, "Show all" leaves empty margins and "Fill frame" crops the edges.
- If you like, add text, a crossfade, reverse or ping-pong playback, or play it once.
- Check it with the play button, then press "Save GIF".
Setting the time of each frame
A GIF stores, for every frame, how long to wait before moving to the next one, in hundredths of a second. This tool therefore takes times in steps of 0.01 seconds, and each frame can last from 0.02 to 10 seconds. Safari (WebKit) and Firefox slow a frame stored as 0.01 seconds or less down to 0.1 seconds, so a value meant to be faster actually plays slower.
| Time per frame | Frames per second | Good for (examples) |
|---|---|---|
| 0.05 s | 20 frames | Smooth drawn animation |
| 0.1 s | 10 frames | Short drawn animation, burst photos |
| 0.5 s | 2 frames | Quick photo sets |
| 1 s | 1 frame | Photo sets, before and after |
| 2 s | 0.5 frames | How-to steps with text to read |
A GIF you add keeps the time stored for each of its frames. A frame stored as 0 or 0.01 seconds is changed to 0.1 seconds, which is what browsers actually show. "2x faster" and "2x slower" scale every frame by the same ratio, so the rhythm of uneven frames stays and only the overall speed changes.
What decides the file size
These sizes were measured by building the four example photos (original 720 × 480) with this tool, 1 second per frame, changing only the long side and the transition.
| Setting | Width × height | Frames | Length | File size |
|---|---|---|---|---|
| 320 px long side | 320 × 213 | 4 | 4 s | 180 KB |
| 480 px long side (default) | 480 × 320 | 4 | 4 s | 367 KB |
| 640 px long side | 640 × 427 | 4 | 4 s | 601 KB |
| 800 px long side | 800 × 533 | 4 | 4 s | 874 KB |
| 480 px + crossfade | 480 × 320 | 20 | 4 s | 1.96 MB |
| 480 px + ping-pong | 480 × 320 | 6 | 6 s | 576 KB |
- Photos are stored almost whole, frame after frame. A GIF can save only the part that changed from the previous frame, but switching to a different photo changes nearly every pixel. Photo GIFs therefore grow with the number of frames, while a screen recording where only a small part moves stays much smaller.
- Shrinking the long side cuts the pixel count with the square. Going from 480 px to 320 px leaves 44% of the pixels, and the file went from 367 KB to 180 KB.
- Crossfade adds four blended pictures between frames. The last 40% of each frame's time (at most 0.4 seconds) is blended into the next frame, and frames shorter than 0.2 seconds are not blended. The total length stays the same, but the frame count goes from 4 to 20, which made the file about 5.3 times larger.
- Ping-pong adds the frames that run back after the last one. With four frames the order is 1-2-3-4-3-2, which makes six frames. If Loop is set to Once, it returns to the first frame and stops, so the order is 1-2-3-4-3-2-1, seven frames.
If you need to shrink a saved GIF further, GIF Compressor lets you pick the number of colors and a lossy compression level to turn the same motion into a smaller file.
256 colors and transparent backgrounds
A single GIF frame can use at most 256 colors. For each photo, this tool splits that photo's colors into 255 groups and uses the average color of each group (median cut), keeping the last slot for transparency. Because each frame has its own palette, the colors of each photo get muddied less when you switch between different photos. Frames taken from the same GIF share one palette, so the colors of a still background don't flicker from frame to frame. Charts and screenshots with 255 colors or fewer keep their colors exactly when added at their original size without text. Resizing them or adding text creates in-between colors at the edges, so the colors are picked again.
In areas where color changes slowly, such as a sky or a sunset, there are not enough colors and banding can show. In the example, the area around the sun in the sunset-over-the-sea photo is one such place.
If you choose "Clear" for the background, margins and any parts that were already transparent are saved as transparent. Transparency in a GIF is only on or off, so a semi-transparent edge becomes a solid color if it is more than half opaque and transparent if it is fainter. Shadows and soft edges can therefore look jagged, like steps.
Editing a GIF you already have
When you add a GIF, it is unpacked into one image per frame and placed in the filmstrip. Even a GIF that draws only a small part over the previous frame is expanded into the full picture visible at that moment, so removing some frames or changing the order won't break the image.
- Change the speed: press "2x faster" or "2x slower". Press again for 4x.
- Play in reverse: set the order to "Reverse".
- Forward and back (boomerang): set the order to "Ping-pong".
- Remove frames you don't need: select a cell and press "Remove frame".
- Join it with photos: add photos before or after the GIF for a title frame or a final frame.
An edited GIF is built again from scratch, so it can end up larger than an original that was already well compressed. In that case, save it and shrink it once more with GIF Compressor.
Common mistakes
- Mixing portrait and landscape photos but leaving the ratio on "First frame": if the first photo is landscape, portrait photos get wide margins on both sides. Switch to "Fill frame" or pick the 1:1 ratio.
- Many frames with a large long side: a photo GIF grows in proportion to frames × pixels. With more than 20 frames, try a long side of 320 to 480 px first.
- Hitting a size limit with crossfade on: four blended pictures are added for every frame. If the limit is tight, switch to "Cut".
- Adding iPhone photos (HEIC) as they are: if your browser can't read HEIC, this tool can't add them either. Convert them first with HEIC to JPG Converter.
- Adding an animated WebP or PNG: only the first frame is added. If you need the motion, add it as a GIF.
- Writing long text: the text shrinks to fit the width and then breaks onto two lines. In a small GIF, short text is easier to read.
Limits
- You can add up to 300 frames, and each file can be up to 50 MB. A photo whose long side is over 1,200 px is reduced to 1,200 px when you add it.
- The long side of the GIF you make is 16 to 1,000 px, and width × height × frames can be up to 60 million pixels. Above that, the save button is locked and the tool tells you the long side that would fit.
- One frame lasts 0.02 to 10 seconds. For repeating, you can only choose "Forever" or "Once". "Once" is a GIF saved without a loop marker, and the Skia decoder used by Chrome and Edge reads that as a repeat count of 0, which means it plays one time.
- Sound and video can't be added. For long scenes with a lot of motion, a video file is much smaller than a GIF, so if you want a GIF from a video, use Video to GIF Converter.
- All processing happens in browser memory, so on an older phone a large GIF can take a while to build or may stall.
As of 2026-10-23, the relevant sentences in the documents below were checked. File sizes are values measured by building the example photos with this tool in Chrome. Browsers resize photos in slightly different ways, so a difference of a few KB is possible.
Sources
- 01W3C — Graphics Interchange Format Version 89aDelay time (hundredths of a second), palette size (up to 256), transparency index, disposal method
- 02WebKit — ScalableImageDecoder.cppComment saying frames stored as 0.01 s (10 ms) or less are shown as 0.1 s, as in Firefox
- 03Skia — SkCodec.h, getRepetitionCountThe repetition count does not include the first play, and 0 means an animation that plays only once
- 04Heckbert, P. (1982). Color image quantization for frame buffer display. SIGGRAPH '82, 297–307Median cut color reduction
- 05GitHub Docs — Attaching filesImages and GIFs up to 10 MB
- 06web.dev — Replace animated GIFs with video for faster page loadsReplacing long animated GIFs with video makes them far smaller
- 07Wikimedia Commons — the four example photos (CC0 1.0)corina ardeleanu 'Red poppies under morning sun', Fritz Bielmeier 'Riding a bike in the park', Alisa Anton 'Coffee shop entrance in Leiden', Charlie Hang 'Sunset over beach'
Frequently asked questions
How many photos can I add?
You can add up to 300 frames, and each file can be up to 50 MB. If width × height × frames of the GIF you make is over 60 million pixels, it can't be saved, and the tool tells you the long side that would fit.
Can each frame have a different time?
Yes. Drag the right edge of a cell in the filmstrip, or select a cell and type 0.02 to 10 seconds in the "This frame's time" box. A GIF stores time in hundredths of a second, so you can set it in steps of 0.01 seconds.
Does a very short time like 0.01 s make it faster?
No. Safari and Firefox slow a GIF stored as 0.01 seconds or less down to 0.1 seconds. That is why this tool lets you start at 0.02 seconds per frame.
Why is the file so large?
In photos almost every pixel changes from frame to frame, so the file grows with the number of frames. The four example photos come to about 367 KB at a 480 px long side, and with crossfade on there are 20 frames and about 1.96 MB. A shorter long side or "Cut" makes it smaller.
Can I change the speed of a GIF I already have, or play it in reverse?
Yes. When you add a GIF it is unpacked into frames. Use "2x faster" and "2x slower" to change the speed while keeping the rhythm, and choose "Reverse" or "Ping-pong" for the order. You can also remove frames you don't need.
Can I make a GIF with a transparent background?
Choose "Clear" for the background. Transparency in a GIF is only on or off, so a semi-transparent edge becomes a solid color if it is more than half opaque and transparent if it is fainter, which can look a little jagged.
Can I add iPhone photos (HEIC)?
Only if your browser can read HEIC. If it can't, the tool shows a message, so convert the HEIC photo to JPG first and then add it.
Are my photos uploaded to a server?
No. Reading the photos and building the GIF both happen inside the browser you are using. When you press the save button, the finished file downloads right away.