DownsampleImages
Gerenciamento de documentos, Imagens
Descrição
Reduz a resolução de XObjects de imagem incorporados cuja resolução efetiva excede MaxDPI. Cada imagem candidata é decodificada, reamostrada com a proporção preservada e recodificada como DCTDecode (JPEG) quando Quality é maior que 0, ou como FlateDecode (PNG) sem perdas quando Quality é 0; o fluxo da imagem e as entradas /Filter, /Width e /Height são regravados no próprio lugar
Sintaxe
Delphi
Function TPDFlib.DownsampleImages(MaxDPI, Quality, Filter: Integer): Integer;Parâmetros
| MaxDPI | Limiar de resolução em DPI; imagens cuja resolução efetiva estimada está acima desse valor são reamostradas. Valores abaixo de 24 abortam a chamada |
|---|---|
| Quality | Qualidade de compressão JPEG entre 1 e 100 usada na recodificação; passe 0 para recodificar sem perdas como PNG |
| Filter | 0 seleciona o filtro box, que faz a média de blocos de pixels de origem; qualquer outro valor seleciona a reamostragem bilinear |
Valores de retorno
O número de XObjects de imagem regravados, ou 0 quando MaxDPI está abaixo de 24 ou nenhuma imagem excedeu o limiar
Observações
A resolução efetiva é estimada a partir da largura declarada em pixels da imagem em relação a uma página de largura Letter, de modo que a passada é conservadora e imagens de qualidade de impressão são deixadas intactas em caso de dúvida
Imagens menores que 8 x 8 pixels declarados, imagens que falham ao decodificar e imagens cujo tamanho reamostrado não seria menor que o original são ignoradas sem fazer a chamada falhar
Exemplo
PDF.LoadFromFile('scan.pdf', '');
PDF.DownsampleImages(150, 80, 0);
PDF.SaveToFile('scan-compressed.pdf');