Clipping nativo de glyphs
HPDFRenderHeadlessPagePNG rasteriza a cobertura de glyphs preenchidos antes de aplicar o clip ativo do PDF
Uma superfície alfa separada captura o clip existente dentro dos limites inteiros do glyph em device space e multiplica essa cobertura com a máscara do glyph antes que a origem original e o operador de blend sejam aplicados
Isso evita linhas de glyphs perdidas em fronteiras fracionárias de clip, retendo W/W*, buracos even-odd, paths curvos, texto transformado, alfa, soft masks e cores com patterns
O desenho mantém o path do PDF e o graphics state do chamador, incluindo o estado de rendering de texto e Forms aninhados
Contabilidade de recursos
Tanto os buffers alfa quanto a estimativa do raster de glyphs entram no orçamento de memória de trabalho antes da alocação, e o raster raw de glyphs entra no orçamento de pixels mesmo quando apenas uma pequena parte é visível na página
A contagem raw de pixels de glyphs é multiplicada com segurança como Int64 e comparada exatamente com o limite de pixels configurado antes que qualquer superfície alfa seja alocada
A estimativa em bytes checa a capacidade Int64 restante antes de multiplicar a contagem raw de pixels de glyphs, inclusive quando os chamadores aumentam os limites configuráveis de pixels e memória
O cancelamento é polled em torno da geração de cobertura e da composição final, e falhas deixam o destino inalterado até que o rendering seja concluído com sucesso
Precisão e verificação
Clips retangulares são checados contra áreas de pixels exatas independentes, com diferença máxima de canal de dois
Testes de polígonos e curvas comparam a composição de glyphs contra um companion separado de clip com fill sólido, com o mesmo limite
A rasterização de clips do Cairo subjacente pode diferir da área exata do polígono, incluindo o caso retido do triângulo com diferença máxima de seis em quatro pixels na escala dois
Imagens separadas de MuPDF e Poppler registram sua própria rasterização de fontes e clips, em vez de definir a fórmula nativa