Transparent PNG Emojis Explained
What the alpha channel actually does, why JPG can never hold transparency, and the exact sizes each chat platform wants.
What transparency actually is
A normal photo stores three numbers per pixel: how much red, green and blue it contains. A transparent image stores a fourth, called alpha, which records how opaque that pixel is. Alpha 255 means fully solid, alpha 0 means completely invisible, and the values in between give you the soft edge that makes a cut-out look like it belongs on whatever is behind it.
That fourth channel is the whole game for emojis and stickers. Without it, your emoji arrives as a rectangle. With it, the shape itself is the image.
Why JPG can never do this
JPG has no alpha channel — not a disabled one, not an optional one. The format simply does not define a place to store opacity. Any tool that hands you a “transparent JPG” has given you a white or checkerboard background painted into the pixels.
The formats that do carry alpha:
- PNG — lossless, universally supported, the safe default. This is what PennyLogo returns.
- WebP — smaller files at similar quality, alpha supported, and accepted almost everywhere now. Useful when file size limits bite.
- SVG — vector rather than pixels, so it scales to any size without softening. Right for logos and print; overkill for a 128 px chat emoji.
- APNG / GIF — animated. GIF only supports fully-on or fully-off transparency, which is why animated GIF stickers often show a jagged fringe.
The white-halo problem
The most common defect in a cut-out emoji is a pale outline that only becomes visible in dark mode. It happens when a subject is separated from a white background but the semi-transparent edge pixels keep some of that white mixed in. On a white page you never see it. On a dark chat background it reads as a cheap sticker.
Two things prevent it: cutting from an image whose background is not a strong contrast to the subject’s edges, and never re-saving a transparent PNG through a tool that flattens it onto white first. If you edit an emoji, check the result on a black background before you upload it.
The sizes each platform actually wants
PennyLogo outputs a 512 × 512 px transparent PNG, which downsizes cleanly to every target below. Resize down, never up.
| Where | Size | Limit |
|---|---|---|
| Discord custom emoji | 128 × 128 px | 256 KB |
| Discord sticker | 320 × 320 px | PNG or APNG, 512 KB |
| Slack custom emoji | 128 × 128 px | 128 KB |
| WhatsApp sticker | 512 × 512 px | 100 KB static |
| Telegram sticker | 512 px on the long edge | 512 KB |
| Twitch emote | 112 × 112 px (plus 56 and 28) | 1 MB each |
Note how tight the WhatsApp static limit is: 100 KB at 512 px. A detailed photographic emoji can exceed that as a PNG. If it does, export the same image as WebP — alpha is preserved and the file typically lands well under the cap.
How to check an image really is transparent
- Open it on a dark background — a black slide, or a dark-mode chat window.
- Look at the edges for a light fringe, and at the corners for a faint rectangle.
- If your viewer shows a grey checkerboard behind the subject, that is the transparency indicator, not part of the image.
A quick command-line check, if you have ImageMagick: identify -format "%[channels]" emoji.png prints srgba for an image with an alpha channel and srgb for one without.
Make an emoji now — no account needed for your first few each day. Or browse the library to see what other people have made.