🎞️ Image to GIF — Animate a Photo, No Upload
Turn a single still photo into a smooth, looping animated GIF — pick an effect like zoom, shake, glitch or shine, preview it live, and export. Everything runs in your browser: no upload, no account, no AI service. Looking for a free Ezgif alternative? Toolio’s version is completely free and needs no sign-up.
Private by design. This tool runs entirely in your browser — nothing you enter is uploaded, and it works offline.
About
Image to GIF animates a single photograph by rendering many frames of a chosen motion effect onto a canvas and encoding them into an animated GIF — entirely on your device, with no upload and no AI model. Choose from fifteen looping effects: Ken Burns (slow zoom and pan), zoom in/out breathe, pulse, bounce, float/sway, shake, rock (tilt), spin, a diagonal shine sweep, color cycle (hue rotation), RGB split, glitch (chromatic split plus torn slices), vignette pulse, neon flash, and fade in/out. An intensity slider controls how strong the motion is — keep it low for a subtle 'living photo' look, or push it up for something bold. Switch to Region motion to paint over just the parts of the photo you want to move — water/shimmer, flow in a chosen direction, sway, pulse or shine — and give each painted region its own motion and strength. You also set the loop length, frame rate (FPS), output width, and a background color (or a transparent background for Fade and for effects that move the image away from its edges). A GIF holds at most 120 frames, so if the loop length times the FPS goes beyond that, the tool tells you the real loop length. Every effect is periodic, so the exported GIF loops seamlessly. The GIF is encoded with gifenc, a tiny built-in encoder, so the tool stays fast and works offline. GIF supports 256 colors per frame, so smooth gradients such as skies may show slight banding; lower the width or intensity for smaller files.
How to use
- Drop a photo (PNG, JPG, or WebP) onto the upload area, or click to browse and select one.
- Pick an animation — such as Ken Burns, shake, glitch, spin, shine or color cycle. The preview animates it live.
- Want to move only part of the photo? Click Region motion, paint over the parts that should move with the brush, add more regions if you like, and choose a motion for each one (water/shimmer, flow, sway, pulse or shine). Press Preview to watch it.
- Drag the intensity slider. Lower is subtle and natural; higher is bold. Rigid subjects and faces look best kept gentle.
- Set the loop length, FPS, output width, and background color (or tick Transparent for Fade and the effects that move the image away from its edges). A GIF holds at most 120 frames.
- Click Create GIF. The frames render and encode locally, then a preview and Download button appear.
FAQ
- Does this use AI to make the image move?
- No. There is no AI and no server. It applies a mathematical motion effect (zoom, pan, shake, hue rotation, and so on) frame by frame on a canvas, then encodes those frames into a GIF. It cannot invent new content the way an AI video model would — it animates the pixels that are already in your photo.
- Is my photo uploaded anywhere?
- No. The image is read, animated, and encoded entirely inside your browser using the built-in gifenc encoder. Your photo never leaves your device and the tool works offline.
- Why does the GIF loop smoothly?
- Every effect is built from periodic functions (sine and cosine), so the last frame lines up with the first. That makes the animation loop seamlessly with no visible jump.
- Can I get a transparent background?
- Yes — tick Transparent. It shows wherever the photo moves away from the edges of the frame (bounce, sway, shake, rock and spin) and during Fade in/out, when the whole photo fades to transparent. Ken Burns, zoom, pulse and the other effects keep the photo covering the whole frame, so Transparent changes nothing for them. RGB split and glitch always draw on black, and Region motion ignores the option too.
- The file is large or the gradients look banded. What can I do?
- GIF is limited to 256 colors per frame and stores every frame, so size grows with width, FPS, and loop length. Reduce the output width, lower the FPS, or shorten the loop. Banding on smooth gradients (like skies) is a GIF limitation — a smaller width and lower intensity usually help.
- Can I move only part of the photo?
- Yes. Click Region motion, paint over the parts you want to animate, and pick a motion for each region — water/shimmer, flow (up, down, left or right), sway, pulse or shine. Everything you did not paint stays still. You can add as many regions as you need, each with its own motion and strength.
- Why is my GIF shorter than the loop length I entered?
- A GIF made here holds at most 120 frames. If the loop length times the FPS is more than 120 (for example 6 seconds at 30 FPS), the tool stops at 120 frames and tells you the real loop length. Lower the FPS if you need the full length, or shorten the loop. Values outside the allowed range are also corrected to the nearest allowed value.