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.

WhereSizeLimit
Discord custom emoji128 × 128 px256 KB
Discord sticker320 × 320 pxPNG or APNG, 512 KB
Slack custom emoji128 × 128 px128 KB
WhatsApp sticker512 × 512 px100 KB static
Telegram sticker512 px on the long edge512 KB
Twitch emote112 × 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

  1. Open it on a dark background — a black slide, or a dark-mode chat window.
  2. Look at the edges for a light fringe, and at the corners for a faint rectangle.
  3. 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.

Related