Zestawy kolorowych glifów bitmapowych

GetRegisteredColorGlyphInfo i DrawRegisteredColorGlyph obsługują kolorowe glify bitmapowe przechowywane w tabelach CBDT/CBLC lub sbix

Wybór zestawu

TargetPixelsPerEm wybiera zestaw o najmniejszej bezwzględnej odległości ppem, a zero wybiera największy dostępny zestaw dla maksymalnie zachowanych szczegółów

Wybór CBDT/CBLC obsługuje formaty podtabel indeksu 1, 2, 3 i 5 oraz formaty obrazów PNG 17, 18 i 19

Wybór sbix weryfikuje każde okno zestawu względem maxp.numGlyphs, akceptuje rekordy graficzne PNG, JPEG i TIFF oraz rozwiązuje rekordy dupe przez ograniczony łańcuch 16 poziomów z odrzucaniem cykli

Rozmieszczenie i dekodowanie

THPDFOpenTypeColorGlyphInfo.PixelsPerEmX i PixelsPerEmY zgłaszają rozmiar wybranego zestawu, podczas gdy OriginOffsetX i OriginOffsetY zgłaszają przesunięcie dolnego-lewego rogu bitmapy od linii bazowej glifu w pikselach zestawu

Natywne dekodowanie PNG zachowuje jego kanał alfa i emituje miękką maskę obrazu, natomiast natywne dekodowanie JPEG emituje nieprzezroczyste dane RGB

Rozmieszczenie skaluje zdekodowane piksele przez FontSize / PixelsPerEmY i stosuje zapisane przesunięcie linii bazowej, aby mieszane glify wektorowe i bitmapowe wyrównywały się spójnie

Rekordy TIFF oraz wszelkie nieobsługiwane lub niekodowalne dane są przekazywane dalej do OnColorGlyphRasterize z ich oryginalnym typem MIME i bajtami

Limity zasobów

Parser przyjmuje co najwyżej 4 096 zestawów sbix, 16 pośrednich duplikatów i 64 MiB na wyodrębniony element bitmapy oraz odrzuca rekordy przycięte, nakładające się, spoza zakresu lub o niezgodnym podpisie przed wyjściem strony