Skip to content

Convert

Make an animated GIF from images

Drop in a set of images, put them in order, choose how long each frame is shown, and get an animated GIF. The whole thing is encoded in your browser - the palette, the compression and the container are all built here, so no image is uploaded and no service is involved. One property of the format is worth knowing before you start: a GIF holds at most 256 colours per frame, so flat graphics, screen recordings and line art come out looking exactly like the source, while photographs lose some colour. The page tells you how large a palette each build actually needed.

Loading the GIF builder...

How to make an animated GIF from images

  1. Drop in your frames. Drop more in later to add them to the end.
  2. Put them in order, and remove any you do not want.
  3. Set the frame delay and whether it loops.
  4. Download the animated GIF.

Supported formats

This tool accepts PNG, JPG, WebP, GIF, BMP and AVIF files. Everything is decoded by your own browser, so the formats available depend on what your browser can open - which for HEIC in particular varies between Safari and other browsers.

Frequently asked questions

Why does my photo look posterised?

Because GIF stores at most 256 colours per frame, and a photograph contains far more than that. The encoder picks the 256 that best represent each frame, which is as good as the format allows, but smooth gradients - a sky, a shadow - will show banding. That is the format rather than the tool: for a photograph, an animated WebP or a short video is a far better container. GIF is at its best on flat colour, which is why screen recordings and line art come out looking identical to the source.

Why did my 60 fps timing change?

GIF stores frame delays in hundredths of a second, so the finest step it can express is 10 ms and a 16.7 ms frame becomes 20 ms. There is no way around it inside the format. The page reports the delay it actually wrote rather than the one you typed, because if you are matching a source frame rate you need to know which of the two you got.

What happens to images that are a different size?

A GIF has one canvas, so they have to be reconciled. The first image sets the size, and the rest either fit inside it with a white border or fill it and lose their edges - you choose which. Nothing is stretched, because a stretched frame in the middle of an animation is the most obvious possible defect and is never what anyone wanted.

Does it support transparency?

Yes, but only as one bit: a pixel is either fully transparent or fully opaque, because that is all GIF stores. A soft, antialiased edge has to fall on one side or the other, and the cut is made at half opacity so shapes keep roughly their original weight rather than eroding or fattening. If you need real partial transparency in an animation, GIF is the wrong format.

Is there a limit on the number of frames?

600, but the number of frames is only half of it - what actually matters is frames multiplied by frame size. Every frame is held in memory at full size until the file has been written, so 600 postage stamps are fine and 600 frames of 1280x720 would be over two gigabytes and would take the tab down. The page works out what your device can manage at the size you are building at, checks it before any work starts, and if it is too much it tells you roughly how many frames that size would allow rather than just refusing.

Is my image uploaded?

No. The palette, the LZW compression and the GIF container are all written by code running in this tab, and a content security policy the browser enforces prevents this page from sending anything to another domain. There is no encoder service and no library fetched from anywhere.

Looking for something else? Browse all ImageUtility tools.