原生字形裁剪

HPDFRenderHeadlessPagePNG 在套用作用中 PDF 裁剪之前先點陣化填滿字形覆蓋

獨立的 alpha 表面在整數裝置空間字形邊界內捕捉既有裁剪,並在套用原始來源與混合運算子之前把該覆蓋與字形遮罩相乘

如此避免小數裁剪邊界處遺失字形列,同時保留 W/W*、奇偶孔洞、曲線路徑、轉換文字、alpha、soft mask 與圖案化顏色

繪製保留呼叫端的 PDF 路徑與圖形狀態,包含巢狀文字與 Form 渲染狀態

資源核算

兩塊 alpha 緩衝與字形點陣估計都在配置前計入工作記憶體預算,raw 字形點陣即使只有一小部分落在頁面上也計入像素預算

raw 字形像素數以 Int64 安全相乘,並在配置任何 alpha 表面之前與設定的像素上限做精確比較

位元組估計在乘 raw 字形像素數之前檢查剩餘 Int64 容量,呼叫端調高可設定的像素與記憶體上限時也不例外

覆蓋產生與最終合成期間輪詢取消,失敗時目標保持不變,直到渲染成功完成

精度與驗證

矩形裁剪與精確的獨立像素區域比較,通道最大差異為 2

多邊形與曲線測試把字形合成與單獨的實心填滿裁剪伴隨項比較,限額相同

底層的 Cairo 裁剪點陣化可能與精確多邊形區域不同,包含保留三角形案例:尺度 2 下四個像素最大差異 6

MuPDF 與 Poppler 的獨立影像記錄的是它們自己的字型與裁剪點陣化,並不定義原生公式

驗收執行器與證據範圍