Why are my Twitch emotes blurry?
· 5 min read
Short answer: at 28×28 an emote has 784 pixels, so how it was shrunk decides everything. Start from large, clean artwork, resize each size separately with a sharp filter, and upload the three sizes yourself. The Twitch emote resizer does exactly that.
1. The source was smaller than 112×112
Twitch needs 28×28, 56×56 and 112×112. If your artwork is smaller than 112 pixels, something has to invent the missing pixels, and the result is always soft. Export your art at 112×112 or larger, ideally several times larger, and shrink from there.
2. A soft resizing filter
Many quick resizers average neighbouring pixels (bilinear or box filtering). That’s fine for photos but smears the outlines that make an emote readable. A Lanczos filter keeps edges sharp when shrinking, which is what image editors use for "sharper" downscaling. Resizing in one big jump from a huge image with a soft filter is the worst case.
3. Detail that can’t survive 28 pixels
Thin lines, small text and fine texture turn into grey mush at 28×28 no matter how good the filter is. Thick outlines, a big simple shape and strong contrast read best. Look at the 28×28 result at its real size before you upload.
4. A JPEG somewhere in the chain
JPEG blurs edges and adds blocky noise around them, and it has no transparency. Keep your artwork in PNG from start to finish. Twitch emotes are uploaded as PNG (still) or GIF (animated).
5. A dark halo around transparent edges
When a resizer mixes the colour of fully transparent pixels (often black) into the edge pixels, emotes get a dark fringe that looks like blur on a light chat theme. Resizing in premultiplied alpha avoids it. Our resizer does this; many quick tools don’t.
6. Letting auto-resize decide
Twitch can make the three sizes from one large upload. Convenient, but you don’t control how the small sizes are made. Manual upload lets you provide each size yourself, so you can check the 28×28 version first.
Twitch emote sizes
| Manual upload | Auto-resize | |
|---|---|---|
| Static | 3 PNGs: 28×28, 56×56, 112×112 | 1 PNG, 112×112 to 4096×4096, ≤ 1 MB |
| Animated | 3 GIFs, each ≤ 512 KB | 1 square GIF, 112×112 to 4096×4096, ≤ 1 MB |
From Twitch’s emote guidelines, checked 29 October 2026.
Checklist
- Artwork at 112×112 or larger, PNG, transparent background.
- Thick outlines, one clear shape, no small text.
- Make all three sizes with the Twitch emote resizer and check the 28×28 one at real size.
- Upload them manually. For sub badges (18, 36 and 72 px, under 25 KB) use the badge resizer.