Embedded Bitmaps

Combine contours and bitmaps in one TrueType font file

Embedded bitmaps are bitmaps that can be added to a TrueType font file. A font may contain one or more embedded bitmaps, for one or more pixel-per-em (ppem) sizes. For instance, a TrueType font might include embedded bitmaps of glyphs that are difficult to hint at small sizes, such as complex ideographs. Windows 95 uses TrueType embedded bitmaps to render small glyphs in its Kanji and Lucida Console fonts and for selected glyphs in its core fonts, such as shade characters. Embedded bitmaps also are called "scaler bits" or, more commonly, "sbits".

The behavior of embedded bitmaps within a TrueType font is transparent to the text processing client. Because the TrueType rasterizer includes a font driver for both contours and bitmaps, the client does not need to know whether a bitmap glyph returned by the rasterizer comes from an embedded bitmap or from a scan-converted contour. If an embedded bitmap exists in a font for a requested glyph at a selected size, then the rasterizer returns the embedded bitmap. If the embedded bitmap does not exist in the font, then the rasterizer returns a bitmap that is generated from the contour data. 'Sbit only' fonts, that is fonts with embedded bitmaps but without contour data, are permitted, but such fonts can only return the sbit glyphs and sizes that are defined in the font. The TrueType font format currently does not support gray scale embedded bitmaps.

Revision 1.65 of the TrueType 1.0 Font File Specification (available on MSDN) includes three new tables for embedded bitmap data. The Embedded Bitmap Location Table (EBLC) identifies the sizes and glyph ranges of the font's embedded bitmaps and contains offsets to the glyph bitmap data. The Embedded Bitmap Data Table (EBDT) stores the glyph bitmap data in a number of different formats. The Embedded Bitmap Scaling Table (EBSC) specifies the bitmap point sizes that can be generated by scaling embedded bitmaps up or down.