IMAGE→GIF local · no upload

Slideshow · Photos → GIF

Photo to GIF

Turn a handful of photos into a short, silent loop. Add the images, drag them into order, choose a frame delay, and download a real GIF. The encoder runs in this tab, so the photos are never uploaded.

  • 2–30 photos
  • Drag to reorder
  • Loop on or off
  • No upload

New to GIF timing? Read the timing notes.

Local GIF encoder GIF89a
ready nothing uploaded
or paste an image with Ctrl/⌘ + V

How to make a GIF from photos

  1. Choose 5–15 photos. A short sequence reads better than a long one. Five to fifteen frames is a good range for a chat reaction, a product loop, or a small slideshow.
  2. Put the frames in order. Drop the photos, then drag the thumbnails or use the arrow buttons. Frame 1 sets the output aspect ratio.
  3. Set the timing and size. A 300–800 ms frame time is comfortable for photos. Start at 640 px wide; drop to 480 px if the GIF is too large.
  4. Create and download. The GIF is encoded in a Web Worker on your device. Check the preview, then download the file.

If you only have one photo, the same tool writes a still GIF. That is useful for a compatibility requirement, but a single photo usually looks better and stays smaller as JPEG or WebP.

How many photos should a GIF have?

Five to fifteen frames is the sweet spot for most photo slideshows. Fewer frames feel like a slideshow; more frames feel smoother but grow the file quickly. The hard cap here is 30 frames, and the result panel warns when a GIF passes 8 MB.

For a reaction GIF, try 4–8 frames. For a product loop, try 8–15. For a longer narrative, a video file is the better container.

Frame timing: how fast should the GIF play?

GIF delays are stored in hundredths of a second, so the finest step is 10 ms. A 500 ms delay means two frames per second. That is a good default for photos because it gives the eye time to read each image.

The delay is global for the whole GIF in this version. If one frame needs to hold longer, duplicate it in the frame strip.

Size and quality: the file-size levers

Width is the biggest lever. A 640 px photo GIF can be several times larger than the same sequence at 480 px. Frame count is next: every frame carries its own pixels. The palette and dithering settings matter too, but less than dimensions and frame count.

Auto quality uses 256 colors and Floyd–Steinberg dithering for photo-like images, and 128 colors without dithering for flat graphics. If the result is too large, try 480 px, 128 colors, or fewer frames. Read How to reduce GIF file size for the full set of trade-offs.

Photo GIF vs video

PropertyPhoto GIFVideo (MP4/WebM)
AudioNoneYes
LengthShort loopsMinutes or longer
Colors256 per frameMillions
CompatibilityVery wideWide, but not every upload field
File sizeGrows quickly with framesMuch smaller for long content

Related pages

Photo to GIF FAQ

How many photos should I use for a GIF?

Five to fifteen is a practical range. The tool accepts up to 30, but every frame adds file size. A 30-frame photo GIF at 640 px can be several megabytes.

What frame delay should I use?

Start at 500 ms. For a fast slideshow, 200–300 ms works; for a readable sequence, 700–1000 ms. GIF stores delays in hundredths of a second, so the tool rounds to the nearest 10 ms.

Can I make a GIF from iPhone photos?

Yes, in Safari. If a photo is HEIC and the browser cannot decode it, export it as JPEG first. The tool tells you when a file cannot be decoded instead of failing silently.

Why is my photo GIF so large?

GIF stores each frame separately and has no inter-frame prediction. Photos also need a large palette and often dithering. Reduce the width, use fewer frames, or lower the color count to bring the file down.

Can I add music or a voiceover?

No. GIF has no audio track. For a longer sequence with sound, export a video (MP4 or WebM) instead. This tool is for short, silent loops.

Are my photos uploaded?

No. The files are read and encoded in this browser tab. There is no upload endpoint, no account, and no server-side copy.

image-to-gif.com converts images to GIF in the browser; files are never uploaded.