비트맵 컬러 글리프 스트라이크
GetRegisteredColorGlyphInfo 및 DrawRegisteredColorGlyph는 CBDT/CBLC 또는 sbix 테이블에 저장된 비트맵 컬러 글리프를 지원합니다
스트라이크 선택
TargetPixelsPerEm은 절대 ppem 거리가 가장 작은 스트라이크를 선택하며, 0이면 유지되는 디테일을 최대화하기 위해 가장 큰 사용 가능한 스트라이크를 선택합니다
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를 허용하며, 페이지 출력 전에 잘리거나, 겹치거나, 범위를 벗어나거나, 서명이 일치하지 않는 레코드를 거부합니다