GIF Maker

Upload multiple images and turn them into an animated GIF. Control frame timing, loop behavior, output size, and quality. Reorder frames before generating. Everything runs in your browser.

Drag & drop files here, or

JPG PNG WebP GIF BMP Multiple files supported • Each image = one frame

Multiple Frames

Upload as many images as you like. Each one becomes a frame in the animation. Drag to reorder, remove unwanted frames, add more at any time.

Full Control

Set frame delay (50ms to 2s), loop count (once, infinite, or custom), output dimensions, and encoding quality to get exactly the animation you want.

100% Private

Your images never leave your device. GIF encoding runs locally via gif.js Web Workers. No server upload, no storage, no tracking.

Advertisement

How it works

How the GIF maker works

This animated GIF maker converts a sequence of still images into a single GIF animation. Each uploaded image becomes one frame. The frames are resized to a common dimension using the Canvas API, then encoded into the GIF89a format using the gif.js library, which runs LZW compression inside a Web Worker to avoid freezing your browser. You can control the frame delay (how long each image shows), the loop count, the output dimensions, and the color quantization quality. Before uploading, crop your images to matching proportions with the Image Cropper or resize them with the Image Resizer.

Frame timing and loop settings

Frame delay controls how long each image stays visible before the next one appears. Lower values make faster animations: 50–100ms creates a rapid slideshow effect, 200–500ms is comfortable for most presentations, and 1000–2000ms gives a slow step-through. The loop setting determines whether the GIF repeats infinitely (standard for most web use), plays once and stops, or loops a set number of times. For social media, infinite loop with 150–300ms delay tends to work best. If your source images contain metadata you want to strip first, use the EXIF Remover.

GIF file size and quality tradeoffs

GIF files can get large because each frame stores a full image. Three factors control size: output dimensions (halving both width and height cuts file size roughly 4×), the number of frames, and the quality/color quantization setting. GIF supports a maximum of 256 colors per frame — the "quality" setting controls how accurately those 256 colors represent the original image. High quality produces better gradients but slower encoding; low quality encodes faster and occasionally produces smaller files. For photos that need smaller file sizes, consider compressing source images first with the Image Compressor or converting to WebP with the Format Converter.

Common uses for animated GIFs

Animated GIFs are used for product image carousels, step-by-step tutorials, social media memes, before-and-after comparisons, progress animations, and lightweight UI demos. They play automatically in most email clients, messaging apps, and social platforms without requiring a video player. For social media publishing, you can also prepare images at platform-specific dimensions using the Social Media Resizer. If you need to annotate frames before assembling the GIF, the Image Annotator can add arrows, text, and highlights to each image. Explore all 92 image tools. Read our GIF maker guide for tips, examples, and best practices.

Frequently Asked Questions

How many images can I use to create a GIF?

There is no hard limit — you can add as many frames as your browser memory allows. Most devices handle 20-50 frames smoothly. Very long animations with 100+ frames at high resolution may slow down encoding. For best results, keep output dimensions reasonable (400-800px wide) when using many frames.

What image formats can I use as GIF frames?

JPEG, PNG, WebP, GIF, BMP, and AVIF. Each uploaded image becomes one frame in the animation. Images of different sizes and formats can be mixed — they are all resized to the output dimensions you specify. For best visual consistency, use images with the same aspect ratio.

Does this tool upload my images to a server?

No. All processing happens locally in your browser. The gif.js library encodes the GIF using Web Workers on your device. Your images are never sent to any server — the entire animation is assembled client-side and offered for download directly from your browser.

Why is my GIF file so large?

GIF files store each frame individually, so animations with many frames or large dimensions produce big files. To reduce size: lower the output dimensions (try 400×300 instead of 800×600), use fewer frames, or select "Low" quality to reduce color accuracy. Halving both width and height typically cuts file size by roughly 75%.

What frame delay should I use?

It depends on the effect you want. 50-100ms creates a fast, flipbook-style animation. 200-300ms is a comfortable pace for most slideshows and social media GIFs. 500-1000ms works well for step-by-step tutorials where viewers need time to read each frame. 1000-2000ms is a slow transition for before/after comparisons.

Can I reorder frames after uploading?

Yes. Each frame in the queue has up and down arrows to change its position, plus a remove button to delete it. You can also add more images at any time using the "Add More Frames" button. The final GIF plays frames in the order shown in the queue, from top (first frame) to bottom (last frame).