GIF Maker

Build a GIF from images or a short video in this tab. Nothing is uploaded.

Drop images or a video here

PNG, JPG, WebP, GIF, MP4 or WebM, or paste from the clipboard

No files yet. Drop, paste or use the buttons above.

Add at least two frames to start
0 / 0

Drag to reorder · Click to select · Shift-click or ⌘/Ctrl-click for multi-select

Canvas & fit

Timing

Text overlay

Filters

Export gifski

Encoding…
Exported GIF preview
animation.gif —
Download GIF

GIF is limited to 256 colours per frame. Large videos may take a while. Keep the tab open while encoding.

Make a GIF on Catpool (step by step)

The GIF Maker turns a set of stills, or frames pulled from a short video, into a looping animation you can download. Work stays in this tab until you export; there is no Catpool account and no upload queue.

1. Bring in your source

  1. Drag images onto the drop zone, or use Add images. PNG, JPEG and similar stills work well; keep a sensible order (first file = first frame unless you reorder later).
  2. Or use Import video / drop a short clip. Set Video sample FPS and Max frames from video so you do not pull hundreds of near-identical frames from a long file.
  3. Paste is there when you already have an image on the clipboard (for example a screenshot).

Aim for a short sequence: a handful of clear frames usually looks better and exports faster than a huge stack.

2. Tidy the frame list

  1. Select frames you do not want and hit Delete, or Duplicate a frame you want to hold longer.
  2. Use Reverse if the motion should run backwards (Useful for ping-pong style loops after you export with forever looping).
  3. Select all when you are about to change delay or text on every frame at once.

3. Set timing so it feels right

  1. Pick a Default delay (ms): how long each frame stays on screen. Lower = snappier; higher = slower / more readable text.
  2. Or set an FPS and use Apply FPS to all when you think in frames-per-second rather than milliseconds.
  3. Need one frame to linger? Select it, set Delay (ms), then Apply on that selection only.
  4. Use Speed as a global nudge (for example 1.00×) when the whole clip feels slightly slow or fast after you have set delays.

4. Match canvas and fit

  1. Set Width and Height for the output size (smaller files are kinder on chat apps and email).
  2. Choose Fit: Contain keeps the whole image visible (letterboxing possible), Cover fills the frame (edges may crop), Stretch forces the size (can distort).
  3. Set Background if contain leaves empty areas: a solid colour stops transparent “holes” looking wrong in places that do not support GIF transparency well.

5. Optional polish

  • Text overlay: add a caption, pick size, colour and position (top / centre / bottom), then apply to All frames or Selected only.
  • Filters: nudge brightness and contrast if the source is flat; Reset if you overshoot.

6. Export and download

  1. Under Export, pick an encoder: gifski (best quality) when you care about smoothness and colour; gif.js when you want the worker/dither path and a quicker compromise on some machines.
  2. Set Quality / colours (more colours = prettier, larger file; fewer = smaller).
  3. Choose Loop: forever for reactions and stickers, once or a fixed count for a one-shot demo.
  4. Build the GIF, then download the file. Preview in the page first. If something feels off, fix timing or fit, then export again.

If you enjoy what we do, consider supporting us. Every little bit means the world! Support Catpool on Ko-fi

Good source material vs muddy results

GIFs only store a limited colour palette. Flat UI screenshots, simple motion and bold shapes survive compression; noisy photos and fine gradients often band or speck. If a photo GIF looks rough, shrink the canvas, lower colour count slightly for size, or start from fewer, sharper frames rather than a long video dump.

For chat stickers and “before → after” demos, 4-12 frames at a readable delay usually beats 60 near-duplicates at 30 fps.

Privacy on this page

Frames are handled in your browser for building the animation. Prefer images and clips you are allowed to use, and avoid dropping anything confidential onto a shared computer. When you are done, download what you need and close the tab if the machine is not yours.

When to use something else

FAQ

Can I make a GIF from a video?

Yes. Import or drop a short clip, then cap how many frames you pull with Max frames from video and the sample FPS so the strip stays manageable.

Why is my file huge?

Large canvas size, many frames, high colour count and long delays all grow the download. Reduce width/height, drop spare frames, or step quality down a notch and export again.

gifski or gif.js?

Try gifski when quality matters. Use gif.js if you prefer that encoder’s worker/dither behaviour or giftki feels heavy on your device. Compare a short test export before you commit to a long frame list.

Why does the motion look stuttery?

Delay and FPS control how long each frame shows. Increase delay for readability; decrease it (or raise FPS) for smoother motion, then check you did not import duplicate frames from video sampling.

Does the GIF loop forever?

Only if you set Loop to forever. Choose once or a fixed count when you want the animation to stop.

Is signup required?

No. Build the GIF here, download it, and use it where you need it, subject to copyright on your source files.

Related tools