ビットマップカラーグリフストライク

GetRegisteredColorGlyphInfo と DrawRegisteredColorGlyph は、CBDT/CBLC または sbix テーブルに格納されたビットマップカラーグリフをサポートします

ストライクの選択

TargetPixelsPerEm は絶対 ppem 距離が最小のストライクを選択し、ゼロは保持される詳細を最大化するために利用可能な最大のストライクを選択します

CBDT/CBLC 選択は、インデックスサブテーブル形式 1、2、3、5 と、PNG 画像形式 17、18、19 をサポートします

sbix 選択は、各ストライクウィンドウを maxp.numGlyphs に対して検証し、PNG、JPEG、TIFF グラフィックレコードを受け入れ、サイクル拒否付きの境界付き 16 レベルチェーンを通じて dupe レコードを解決します

配置とデコード

THPDFOpenTypeColorGlyphInfo.PixelsPerEmX と PixelsPerEmY は選択したストライクサイズを報告し、OriginOffsetX と OriginOffsetY はストライクピクセル単位でグリフベースラインからのビットマップ左下オフセットを報告します

ネイティブ PNG デコードはアルファチャネルを保持し画像ソフトマスクを出力し、ネイティブ JPEG デコードは不透明な RGB データを出力します

配置はデコード済みピクセルを FontSize / PixelsPerEmY でスケーリングし、格納されたベースライン原点を適用するため、ベクターグリフとビットマップグリフが混在しても一貫して整列します

TIFF レコードおよびサポートされていない、またはデコードできないペイロードは、元の MIME タイプとバイトとともに OnColorGlyphRasterize を通過し続けます

リソース制限

パーサーは最大 4,096 個の sbix ストライク、16 回の重複間接参照、抽出済みビットマップアセットごとに 64 MiB を受け入れ、ページ出力の前に切り詰められた、重複した、範囲外の、または署名が一致しないレコードを拒否します