Twitch Emote Resizer — 28×28, 56×56, 112×112
Drop any image, get all three Twitch sub-emote sizes (28×28, 56×56, 112×112) as PNG or JPG. Live preview against light + dark + transparent chat. 1 MB byte counter against Twitch's upload cap.
Client-side canvas resize, no upload. Outputs Twitch's 28×28, 56×56, 112×112 spec.
The 28 / 56 / 112 spec, where it comes from, and why all three are required
Twitch ships chat to a mixed device fleet. Mobile phones at 1× pixel density render the 28×28 directly. Desktop chat at 1.5× zoom uses the 56×56. Retina laptops and 4K monitors at 2× zoom render the 112×112. Twitch's emote uploader picks the variant per device after the fact — but only if all three sizes were uploaded at submission. A two-of-three upload fails the Affiliate emote review, which is why this resizer always emits the full set. The same three sizes apply to sub emotes, Bit emotes, and BTTV channel emotes; FFZ and 7TV are looser but still accept the same set as the floor.
Why a 28×28 emote dies and a 112×112 lives
Most emote rejections trace to the smallest size. A face that reads at 112×112 collapses into noise at 28×28 after Twitch's automatic resize. Two design rules win consistently. Thick outlines — at least 4 pixels at 112×112 — survive the downscale to ~1 pixel at 28×28. Thin anti-aliased lines vanish entirely. High inner contrast — light shape on dark background or vice versa — keeps the focal element legible at the smallest size. Both rules trace back to Twitch's own emote-design guidance: design at 112×112 first, never start at 28×28, and verify legibility at the smallest size before submitting.
PNG vs JPG vs GIF — when each format wins
PNG is the default for anything with transparency, hard edges, or large flat-colour areas. The toolbar's PNG export preserves the alpha channel so the emote sits cleanly on Twitch's dark and light chat themes. JPG wins for full-frame photographic emotes — anything where transparency is irrelevant and the colour count is high. JPG output is 2-4× smaller than PNG for the same source, which matters when the 112×112 PNG breaches Twitch's 1 MB cap. GIF is the format for animated emotes — the only animated format the first-party uploader accepts (APNG and animated WebP are rejected at validation). Affiliates and Partners both have animated slots across Tier 1, Tier 2, and Tier 3 subs, and every Bit-emote tier accepts animated GIF. Animated GIF export needs a real GIF encoder; this resizer renders the first frame of a GIF source for the PNG export, so use a tool like ezgif or a desktop GIF-frame editor when you need the full animated set at all three sizes.
When the 25 KB safe target bites and what to do
The 112×112 PNG is the size most often over-budget. Even a moderately detailed emote with full alpha and antialiased edges can run 100-400 KB in PNG — well over the 25 KB safe target Twitch documents. Three fixes, in order of cost: One, switch the format selector to JPG. The same emote usually drops 5-10× and lands inside the safe target, accepting the loss of transparency. Two, run the PNG through an indexed-colour optimiser (TinyPNG, pngquant, or Photoshop's "Save for Web → PNG-8 with 64-128 colours"). The target is often met without changing format. Three, simplify the source — fewer colours, smaller composition — and re-export at 112×112 from the original tool. The 1 MB hard ceiling only really bites on long animated GIFs.
Other Twitch image specs (and where to size them)
Beyond emotes, Twitch creators size four other channel images: profile picture (256×256 recommended), profile banner (1200×480), info-panel images (320×100 minimum, designers often work at 640×200 and downsample), and the video-player offline banner (1920×1080). Our Twitch panel size tool covers panels and video banners. Profile-picture sizing is straightforward — any 1:1 source up to 10 MB, Twitch downsamples to 256×256 server-side. The channel audit tool flags missing or wrong-sized panels and banner images on any public Twitch channel. The full Twitch emote spec — including animated APNG / GIF support per emote tier and the file-size cap — lives in the official Twitch emote guide.