Tailles de glyphes couleur bitmap
GetRegisteredColorGlyphInfo et DrawRegisteredColorGlyph prennent en charge les glyphes couleur bitmap stockés dans les tables CBDT/CBLC ou sbix
Sélection de la taille
TargetPixelsPerEm sélectionne la taille dont la distance ppem absolue est la plus petite, tandis que zéro sélectionne la plus grande taille disponible pour conserver un maximum de détails
La sélection CBDT/CBLC prend en charge les formats de sous-table d’index 1, 2, 3 et 5 ainsi que les formats d’image PNG 17, 18 et 19
La sélection sbix valide chaque fenêtre de taille par rapport à maxp.numGlyphs, accepte les enregistrements graphiques PNG, JPEG et TIFF, et résout les enregistrements dupe à l’aide d’une chaîne limitée à 16 niveaux avec rejet des cycles
Placement et décodage
THPDFOpenTypeColorGlyphInfo.PixelsPerEmX et PixelsPerEmY indiquent la taille sélectionnée, tandis que OriginOffsetX et OriginOffsetY indiquent le décalage inférieur gauche du bitmap par rapport à la ligne de base du glyphe en pixels de taille
Le décodage PNG natif conserve son canal alpha et produit un masque doux d’image, tandis que le décodage JPEG natif produit des données RGB opaques
Le placement met les pixels décodés à l’échelle de FontSize / PixelsPerEmY et applique l’origine de ligne de base enregistrée afin que les glyphes vectoriels et bitmap mixtes restent alignés
Les enregistrements TIFF et toute charge utile non prise en charge ou indécodable restent traités par OnColorGlyphRasterize avec leur type MIME et leurs octets d’origine
Limites de ressources
L’analyseur accepte au plus 4 096 tailles sbix, 16 indirections dupliquées et 64 Mio par ressource bitmap extraite, et rejette les enregistrements tronqués, chevauchants, hors limites ou dont la signature ne correspond pas avant la sortie de page