Emoji fonts became so popular after it was included in Apple’s iOS few year back. Apple implemented it using a proprietary, unpublished extension of the TrueType/OpenType specification to add PNG images to a font. These PNG images are then displayed within running text. Google also implemented similar thing, but it is not compatible with Apple’s solution. I recently came to know via from OpenType.info about the interesting approach Microsoft has taken to implement Emojis in Windows 8.1 and Windows Phone 8 platforms.
Earlier, Microsoft supported unicode emoji characters with its Segoe UI with no colors. But with the latest OS, Microsoft is also supporting colored emojis. Instead of using PNGs like Apple and Google, Microsoft is using layered vector glyphs.
Ralf explains how it works,
By default, the new Segoe UI Emoji font behaves like a regular TrueType/OpenType font. It has Unicode-encoded, uncolored “base glyphs”. But there are two additional tables in the font: the COLR table links additional glyphs as layers to the base glyphs and defines the order of these layers. And the CPAL (“Color Palette”) table stores one or more color palettes for the individual layers. (The different color palettes are useful for displaying the font on dark and light backgrounds.) So when there is support for this new color feature, the base glyphs will be replaced with the colored layers.
He also pointed out that Microsoft’s approach has advantages like fully backwards-compatible and easy to create. If Apple and Google adopt Microsoft’s approach, this may become the standard way to display colored glyphs in multiple environments.
Read about it in detail here.