Add Image to GIF
Overlay a logo, watermark or sticker image onto every frame of an animated GIF (or a photo) — pick the position, size and opacity, then download the result. Runs entirely in your browser; nothing is uploaded.
Input
Result
Upload a base image or animated GIF and the overlay image, then drag it into place on the preview. The result updates live as you adjust position, size and opacity — everything runs in your browser, nothing is uploaded.
Guides
Overlay a logo, watermark or sticker image onto every frame of an animated GIF (or a photo) — pick where it sits, how big it is, and how transparent it is, then download the result. Everything runs in your browser; nothing is uploaded to a server.
How to use it
- Upload the base image (JPG, PNG, WebP, BMP) or animated GIF.
- Upload the overlay image — your logo, watermark or sticker (PNG with transparency works best).
- Drag the overlay on the live preview to position it (or focus it and use the arrow keys), then adjust its size (as a percentage of the frame width) and opacity.
- The result updates automatically as you go — download it whenever you're happy with it.
Does this work on animated GIFs?
Yes. Every frame is decoded, the same overlay is composited onto each one in its exact position, size and opacity, and the result is re-encoded with the original per-frame delay intact. Loop forever is checked by default so the output keeps looping like most GIFs; uncheck it to make it play once and stop on its last frame.
Is my file uploaded anywhere?
No. Images are composited directly with the Canvas API, and GIFs are decoded and re-encoded with client-side libraries (gifuct-js/gifenc) — nothing you upload ever leaves your browser.
Looking for other GIF edits? Add Text to GIF burns a text caption onto every frame instead of an image, GIF Editor resizes, crops, rotates, or reverses a GIF, and GIF Trimmer cuts it down to a frame or time range — run any of them before or after adding an overlay image.