Animated emote resizer
Moving emotes for Twitch and Discord, resized frame by frame and squeezed under the limit, on this device.
- Nothing is uploaded
- Works offline after first visit
- Open source
- No watermark · limit is your device’s memory; phones hold less
Resize an animated GIF emote to Twitch’s 112, 56 and 28 pixel GIFs under 1 MB and 60 frames, or a Discord animated emoji under 256 KB. It is free, needs no account and adds no watermark, and your files are not uploaded: everything runs in your browser on your device. The size limit is your device’s memory, and phones hold less; give the page a short while after one visit to save itself for offline use, and then it works offline.
Done
Open the network tab. Your files never appear in it.
Add files and run the tool to see every request this tab makes.
Your files are processed on this device and never sent to a server. Reload the page to clear everything from memory.
Twitch animated emotes are uploaded as three GIFs, 112, 56 and 28 pixels square, each under 1 MB and no longer than 60 frames. An animation exported from Procreate, Aseprite or a video clip is usually bigger on every count, and the dashboard rejects it without saying which limit it broke.
Drop the GIF here and every frame is redrawn into each square, fitted with transparent space or cropped to the centre. If a size comes out over the limit, stronger colour reduction is tried first, then every second or third frame is dropped with its time given to the frame before, so the loop keeps its speed. The result list shows the frame count and flags anything still over.
Switch the platform to Discord emoji for a 128 pixel animated emoji under 256 KB, or Slack for 128 KB. A still GIF or a PNG dropped here comes out as normal still emotes.
How it works
- Drop one or more animated GIFs.
- Keep Twitch, or pick Discord or Slack emoji.
- Press Resize the GIFs and upload each size in the emote settings.
In your browser, not on a server
Your browser decodes each drawing (SVG, HEIC, AVIF and JPEG XL included) and, unless you untick it, finds the smallest box holding every visible pixel so the empty transparent margin is cropped away. The art is then scaled down in halving steps with high-quality smoothing, which keeps outlines cleaner than one big jump, fitted or cropped into each square, lightly sharpened at the smallest sizes with an unsharp mask, and saved as PNG by your browser. An animated GIF is decoded frame by frame with gifuct-js (MIT), each frame drawn into the square, and written back with gifenc (MIT), trying stronger colour reduction and fewer frames until it is under the limit.
Compared with upload-based tools: Emote resizer sites upload commissioned artwork and unreleased sub badges to a server, and many add a watermark to the preview or cap how many you can do. Here the drawings never leave your device and every size is made in one go.
Verify it yourself. Give the page a short while after one visit to save itself for offline use, then turn off Wi-Fi or switch to airplane mode and run the tool again. Or open your browser's developer tools (F12, or Cmd-Option-I on a Mac), pick the Network tab, and watch it while you convert. The panel above does the same count for you.
Questions
Why did some frames go?
Twitch refuses animated emotes over 60 frames, and small file limits sometimes need fewer frames too. Dropped frames hand their display time to the frame before, so the animation lasts as long as the original, just a little less smooth.
The edges look jagged.
GIF has on-or-off transparency, not soft edges, so anti-aliased outlines on a transparent background turn into a hard fringe. Drawing the emote with a solid outline, or on a background colour close to Twitch’s dark chat, hides it.
What do viewers with animations off see?
Twitch shows them a still frame of the emote instead, so make sure the first frame reads well on its own, not just the loop as a whole.
Is the file uploaded anywhere?
No. There is no server in this process. The page is a static file and the work is done by code running inside your browser tab. Give the page a short while after one visit to save itself for offline use; then you can turn off Wi-Fi and it still works.
More image tools
Emote resizer
Every size Twitch, Discord or Slack asks for from one drawing, with transparency kept, made on this device.
Color picker from image
Point at any pixel to get its HEX, RGB and HSL code, and see the main colours of the picture. The image stays on this device.
Image to text
Get the words out of a photo, screenshot or scanned page, ready to copy. The image is read on this device and never uploaded.
QR code generator
For a link, your Wi-Fi, a contact card, an email or a phone number. The code is made on this page and works forever.
Other conversions
- WebP to PNG
- WebP to JPG
- PNG to WebP
- JPG to WebP
- AVIF to JPG
- AVIF to PNG
- SVG to PNG
- JXL to PNG
- JXL to JPG
- JFIF to JPG
- Discord emoji resizer
- Discord sticker resizer
- Slack emoji resizer
- Twitch emote resizer
- Twitch sub badge resizer
- Resize for Instagram
- Pixelate image
- Blur face in photo
- Flip image
- Extract text from image
- Picture to text
- Screenshot to text