Free tool · runs in your browser
One image, every emote size
Twitch wants 112, 56 and 28. Discord wants 128 under 256 KB. Kick, 7TV, BTTV and Slack all differ again. Drop one image and get every file, correctly sized and named, in a single ZIP. Nothing is uploaded.
Drop an emote
or · PNG, WebP or GIF
Your file never leaves this device.
Every platform's emote spec
Each platform enforces a different square, a different byte cap and a different format list — and most reject the upload rather than resizing it for you.
| Platform | Slot | Pixels | Cap | Animated |
|---|---|---|---|---|
| Twitch | Channel emote | 112 / 56 / 28 | 1 MB | GIF, 60 frames |
| Twitch | Sub badge | 72 / 36 / 18 | 25 KB | No |
| Discord | Custom emoji | 128 | 256 KB | GIF |
| Discord | Sticker | 320 | 512 KB | APNG, 5 s |
| YouTube | Membership emoji | 48–480 | 1 MB | No |
| Kick | Channel emote | not published | — | GIF |
| Slack | Custom emoji | 128 | 128 KB | GIF, 50 frames |
Kick documents its slot counts — 60 channel emotes for any channel, plus 24 subscriber emotes once you are an Affiliate or Verified — but does not publish pixel sizes. The square transparent PNG you made for Twitch is the safe upload.
Why 28 pixels is the only size that matters
Twitch chat renders emotes at 28×28. The 112px file is what the picker and hover card show, and 56px appears in a few contexts, but nearly every viewer sees the smallest one. If an emote does not read at 28px, it does not work — no matter how good the 1024px master looks.
Check yours with the readability scorer before you upload; it measures silhouette, contrast on both chat themes and edge survival at exactly that size.
Questions
Does resizing here hurt quality?
Each size is resampled from your source independently with a premultiplied area filter, rather than stepping down through intermediate sizes. That is the main cause of soft, muddy emotes: resizing 1024 → 112 → 56 → 28 compounds rounding error at every step.
Is anything uploaded?
No. Decoding, resizing, PNG encoding and the ZIP are all done in your browser. There is no upload request.
What if a file is over the cap?
Each file's size is checked against its platform's published limit and flagged. For static emotes this is rare — most land in single-digit KB. Animated GIFs are the usual culprit, because GIF stores a full palette per frame.