Clipping nativo de glyphs
HPDFRenderHeadlessPagePNG rasteriza a cobertura de glyphs preenchidos antes de aplicar o clip PDF ativo
Uma superfície alfa separada captura o clip existente dentro dos bounds de glyphs em espaço de dispositivo inteiro e multiplica essa cobertura com a máscara de glyphs antes de a fonte original e o operador de mistura serem aplicados
Isto evita linhas de glyphs perdidas em fronteiras de clip fracionárias mantendo W/W*, buracos even-odd, caminhos curvos, texto transformado, alfa, soft masks e cores com padrões
O desenho mantém o caminho PDF e o estado de gráficos de quem chama, incluindo o estado de renderização aninhado de texto e de Forms
Contabilidade de recursos
Tanto os buffers alfa como a estimativa do raster de glyphs entram no orçamento de memória de trabalho antes da alocação, e o raster bruto de glyphs entra no orçamento de píxeis mesmo quando só uma pequena parte é visível na página
A contagem bruta de píxeis de glyphs é multiplicada em segurança como Int64 e comparada exatamente com o limite de píxeis configurado antes de qualquer superfície alfa ser alocada
A estimativa de bytes verifica a capacidade Int64 restante antes de multiplicar a contagem bruta de píxeis de glyphs, incluindo quando quem chama aumenta os limites configuráveis de píxeis e de memória
O cancelamento é consultado em torno da geração de cobertura e da composição final, e falhas deixam o destino inalterado até a renderização bem-sucedida terminar
Precisão e verificação
Clips retangulares são verificados contra áreas de píxeis independentes exatas com uma diferença máxima de canal de dois
Testes de polígonos e curvas comparam a composição de glyphs contra um companheiro de clip de preenchimento sólido separado com o mesmo limite
A rasterização de clips subjacente do Cairo pode diferir da área exata de polígonos, incluindo o caso do triângulo retido com uma diferença máxima de seis em quatro píxeis na escala dois
Imagens separadas de MuPDF e Poppler registam a rasterização própria de tipos de letra e de clips delas, em vez de definir a fórmula nativa