GIF to ANI Converter
Convert an animated GIF into a Windows animated cursor (.ani) — pick a size, set the click hotspot, and the original frame timing is preserved automatically. Free and entirely in your browser.
Input
Every frame of the animation is kept, and each frame's own delay carries over. Nothing is uploaded — everything runs in your browser.
Off (default): each non-square frame is center-cropped to a square. On: the full frame is kept and padded with transparency instead.
Defaults to center. Windows uses this exact pixel as where clicks register — move it for a pointer shape whose "tip" isn't in the middle.
ANI file
Upload an animated GIF to generate a Windows .ani cursor file.
Also available with
Guides
Convert an animated GIF into a Windows animated cursor (.ani), entirely in your browser. Nothing is uploaded — decoding the GIF and building the .ani file both happen on your device.
How to use it
- Upload an animated GIF.
- Pick a cursor size — 32×32 is the Windows standard; 48×48 or 64×64 look sharper on a high-DPI display.
- Choose whether to center-crop or letterbox a non-square GIF.
- Set the hotspot — the exact pixel Windows treats as the click point. Center is the default and correct choice for most cursors; move it for something like a pointing-hand or crosshair cursor where the "tip" isn't the center.
- Download the generated
.anifile.
Frame timing
A .ani file (unlike a static .ico) keeps every frame — the whole animation carries over. Each frame's own delay from the source GIF is read and written into the cursor, so it animates at the same speed the GIF played at, rather than a fixed rate.
Installing a custom cursor on Windows
- Download the
.anifile. - Right-click your desktop → Personalize → Mouse cursor (or Settings → Bluetooth & devices → Mouse → Additional mouse settings → Pointers tab).
- Pick the pointer you want to replace (usually "Normal Select"), click Browse…, and select the downloaded
.anifile. - Click Apply.
Non-square GIFs
Cursors are square. By default, a non-square frame is center-cropped to the largest square that fits inside it. Turn on "Keep full image (don't crop to square)" to letterbox it instead: the full frame is scaled to fit and padded with transparency on the short axis.
Tips
- Keep the source GIF small and simple — cursors are viewed at 32–64px, so fine detail from a larger source just gets downscaled away.
- A GIF's transparent pixels carry straight through, so a cursor shape doesn't need to be a filled square.
- Need a static (non-animated) cursor instead? Convert a still frame with the GIF to ICO Converter and rename the output's extension to
.cur— a single-image.icoand.curshare the same container format, differing only in the header's type field and the hotspot bytes.
Is my GIF uploaded anywhere?
No. Decoding the GIF, resizing every frame on a canvas, and building the .ani container all happen in your browser. Nothing is sent to a server.