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 uploadAuto-resize
Static3 PNGs: 28×28, 56×56, 112×1121 PNG, 112×112 to 4096×4096, ≤ 1 MB
Animated3 GIFs, each ≤ 512 KB1 square GIF, 112×112 to 4096×4096, ≤ 1 MB

From Twitch’s emote guidelines, checked 29 October 2026.

Checklist

  1. Artwork at 112×112 or larger, PNG, transparent background.
  2. Thick outlines, one clear shape, no small text.
  3. Make all three sizes with the Twitch emote resizer and check the 28×28 one at real size.
  4. Upload them manually. For sub badges (18, 36 and 72 px, under 25 KB) use the badge resizer.