Twitch emote sizes and limits
Twitch takes emotes two ways. With auto-resize you upload one square image and Twitch makes the smaller versions itself. With manual upload you supply all three sizes, which lets you check (or redraw) the tiny one. These are the rules from Twitch’s own emote formatting page, read on 2 October 2026:
| Static emote | Animated emote | |
|---|---|---|
| Format | PNG | GIF |
| Auto-resize | One square PNG, 112 × 112 to 4096 × 4096 px | One square GIF, 112 to 4096 px |
| Manual upload | Three PNGs: 112, 56 and 28 px | Three GIFs: 112, 56 and 28 px |
| File size | Up to 1 MB | 1 MB (auto-resize); 512 KB per file (manual) |
| Other | Square; fully transparent background | Square; at most 60 frames; no flashing more than 3 times a second |
Older guides still quote a 25 KB limit per emote. That rule is no longer on Twitch’s page; the current ceiling for a static emote is 1 MB, and the 112 px test emote we made weighed under 10 KB, so size is rarely the problem. What actually gets emotes rejected or ignored is the background and how they look at 28 pixels.
Why an emote looks fuzzy at 28 px, measured
In chat, an emote is shown at 28 × 28 pixels, a quarter of the 112 version. Every line in your drawing gets four times thinner. A line that ends up thinner than a pixel cannot be drawn solid: the screen blends it with the background and it turns pale. We measured how much. A black line was drawn at different thicknesses on a large transparent canvas, shrunk to 28 px with this tool, and the darkest point of the line was read back (100% means fully solid; average of ten positions, Chrome 154):
| Line thickness in the 112 px version | At 28 px | How dark it stays |
|---|---|---|
| 1 px | ¼ px | 18% |
| 2 px | ½ px | 36% |
| 3 px | ¾ px | 53% |
| 4 px | 1 px | 69% |
| 6 px | 1½ px | 89% |
| 8 px | 2 px | 98% |
So the rule of thumb: outlines and important details should be about 8 px thick at 112 px, which is roughly 7% of the emote’s width, or about 73 px on a 1024 px canvas. Thin outlines, small text and fine hatching fade to a grey smudge. That is why the best emotes use one big shape, a thick dark outline and as few words as possible.
We also tested whether shrinking in halves (2048 → 1024 → … → 28) keeps thin lines better than one step, as some guides suggest. In Chrome it did not: the single step was slightly darker at every thickness. This tool uses the single step. If your 28 px version still looks weak, the fix is in the drawing, not in the resizing, and manual upload lets you supply a hand-adjusted 28 px file.
A transparent background, without an editor
Twitch asks for emotes on a fully transparent background. A white square around your drawing shows up as a white box in dark-mode chat. When the tool sees one flat colour around the edges, it makes that colour transparent, but only the area connected to the edge. White inside the drawing, such as eyes or teeth, stays white. The tolerance slider controls how close a colour has to be to count as background; raise it for a JPG with noisy edges, lower it if part of the drawing disappears.
This works for a plain background. A photo, a gradient or a textured background cannot be separated by colour alone; cut those out in an editor first, then bring the transparent PNG here. The preview shows the emote in Twitch’s dark and light chat at real size, so a leftover halo is easy to spot.
Fill the square
Artists often leave a margin around the drawing. At 112 px it looks tidy; at 28 px a 15% margin on each side leaves the drawing only about 20 pixels wide. “Trim empty edges” cuts the transparent border off first, then the image is made square again with transparent space on the short side, so nothing is cropped. The checklist reports how much of the square the drawing fills.
Animated emotes
Drop an animated GIF and every frame is resized to 112, 56 and 28 px with the animation kept. A GIF that is not square is cut to its centre square. The checks cover what Twitch counts: frames (60 at most), 512 KB per file for manual upload and 1 MB for the single auto-resize file. If a file is too big, reduce colours or frames in Compress GIF first and resize the result. The flashing rule, no more than three flashes a second, has to be judged by eye.
Uploading
Open the emotes section of your Twitch creator dashboard and choose an empty slot. For auto-resize, upload the file
ending in _upload. For manual upload, switch to the manual option and put each file in its matching box:
_112x112, _56x56 and _28x28. The ZIP contains all four.
Making a whole set for your channel? The Discord banner tool covers the server and profile banners, and Resize Image handles any other exact size. Everything here runs in your browser; your artwork is never uploaded.