原生字形裁剪
HPDFRenderHeadlessPagePNG 在套用作用中 PDF 裁剪之前先點陣化填滿字形覆蓋
獨立的 alpha 表面在整數裝置空間字形邊界內捕捉既有裁剪,並在套用原始來源與混合運算子之前把該覆蓋與字形遮罩相乘
如此避免小數裁剪邊界處遺失字形列,同時保留 W/W*、奇偶孔洞、曲線路徑、轉換文字、alpha、soft mask 與圖案化顏色
繪製保留呼叫端的 PDF 路徑與圖形狀態,包含巢狀文字與 Form 渲染狀態
資源核算
兩塊 alpha 緩衝與字形點陣估計都在配置前計入工作記憶體預算,raw 字形點陣即使只有一小部分落在頁面上也計入像素預算
raw 字形像素數以 Int64 安全相乘,並在配置任何 alpha 表面之前與設定的像素上限做精確比較
位元組估計在乘 raw 字形像素數之前檢查剩餘 Int64 容量,呼叫端調高可設定的像素與記憶體上限時也不例外
覆蓋產生與最終合成期間輪詢取消,失敗時目標保持不變,直到渲染成功完成
精度與驗證
矩形裁剪與精確的獨立像素區域比較,通道最大差異為 2
多邊形與曲線測試把字形合成與單獨的實心填滿裁剪伴隨項比較,限額相同
底層的 Cairo 裁剪點陣化可能與精確多邊形區域不同,包含保留三角形案例:尺度 2 下四個像素最大差異 6
MuPDF 與 Poppler 的獨立影像記錄的是它們自己的字型與裁剪點陣化,並不定義原生公式