Turn any image into animated Slack emoji.
Upload a picture, pick one of 42 animated styles, download a GIF that fits Slack's 128 KB limit. Free, no account.
Drop image
or GIF here
How it works
- Upload a PNG, JPG, GIF or WebP — or paste a URL, or paste an image from the clipboard.
- Pick a style. Every card previews your image with that animation; tweak speed, direction, size, colour mode and crop.
- Download the GIF (or WebP/APNG) and add it to Slack under Customize → Emoji. The badge tells you it is under 128 KB; Fit shrinks it if not.
42 emoji styles
Motion
:none:The image as-is, resized — a plain static emoji.:bop:Side-to-side head bob with a squish — pair with the Party colour for the classic look.:shake:Rapid random jitter — the classic “intensifies” look.:nesting:Smaller copies slide out from behind the image, then tuck back in.:enter:Slides in from off-screen and settles.:exit:Waits a beat, then slides off-screen.:conga:A line of small copies dancing across.:bounce:Bounces up and down with a little squash on landing.:spin:Rotates a full turn in the chosen direction.:wiggle:Rocks gently from side to side.:pulse:Breathes in and out.:slide:Scrolls across the canvas and wraps around.:flip:Flips around its vertical axis like a coin.:roll:Spins while rolling across the canvas.:zoom:Grows from tiny to huge and fades out.
Reaction
:love:Hearts float up.:mind-blown:The top of the image blows off with a bang.:hype:Bouncing with sparkles circling.:cheering:Bouncing with a party popper and confetti.:sad:Blue and droopy, with a rolling tear.:panic:Frantic jitter with a red flush.:rage:Shaking and seeing red, anger mark included.:thinking:Tilts pensively as a thought bubble appears.:sparkle:Gently pulsing with sparkles orbiting.
Stickers
:pet:A hand pats the image, which squishes with each pat.:cool:Sunglasses drop in — deal with it.:hat:Wears a wobbling top hat.:crown:Crowned, with a sparkle.:sleepy:Nodding off with a drifting zzz.:ghost:Turns translucent while a ghost peeks in.:fall-leaves:Autumn leaves drift down around it.:money:Bills rain down.
Costumes
:party-parrot:Head on a parrot body: the body cycles through the rainbow while the head bobs side to side.:jammies:Head on a striped pyjama body, swaying sleepily with a drifting zzz.
Scenes
:rainbow-trail:Flies along leaving a rainbow trail.:hyperspace:Jumps to lightspeed through a star field.:amaze:Pops against a spinning rainbow backdrop.:on-fire:Flames flicker along the bottom.
Effects
:glitch:Digital glitch: colour channels split and rows tear.:fade:Fades out and back in.:flash:Flashes brighter every few frames.:dim:Brightness breathes between full and half.
Frequently asked questions
Will the emoji work in Slack?
Yes. Renders default to 128×128 px, and every card shows the file size with a “Slack ✓” badge when it is under Slack's 128 KB limit. If a style comes out larger, the “Fit” button re-renders it with fewer colours, frames or pixels until it fits. Discord's 256 KB limit is satisfied automatically.
Which formats can I download?
Animated GIF (default), animated WebP and APNG. A style with a single frame is delivered as PNG.
What happens to my image?
Uploads and the emoji rendered from them are kept on the server for 24 hours so the grid loads quickly, then deleted. There are no accounts and nothing is shared.
Can I use an animated GIF as the source?
Yes — up to 60 frames. The style is applied to every frame, and the “none” style simply resizes the animation.
Can I add my own artwork or characters?
Yes. Self-hosted installs can drop a sprite plus a small manifest into a custom-styles folder to create new costume or overlay styles without changing code.
Is it free?
Yes. Emoji Gen is free to use and open source; you can also run it yourself with Docker.