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

Runners de aceitação e escopo de evidências