DownsampleImages
Gestão de documentos, imagens
Descrição
Reduz a resolução dos XObjects de imagem incorporados cuja resolução efetiva excede MaxDPI. Cada imagem candidata é descodificada, reamostrada com a proporção preservada e recodificada como DCTDecode (JPEG) quando Quality é maior do que 0, ou como FlateDecode sem perdas (PNG) quando Quality é 0; o fluxo da imagem e as entradas /Filter, /Width e /Height são reescritas no lugar
Sintaxe
Delphi
Function TPDFlib.DownsampleImages(MaxDPI, Quality, Filter: Integer): Integer;Parâmetros
| MaxDPI | Limiar de resolução em DPI; as imagens cuja resolução efetiva estimada está acima deste 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 píxeis de origem; qualquer outro valor seleciona a reamostragem bilinear |
Valores de retorno
O número de XObjects de imagem reescritos, 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 píxeis da imagem face a uma página de largura Letter, pelo que a passagem é conservadora e as imagens de qualidade de impressão ficam intocadas em caso de dúvida
Imagens menores do que 8 x 8 píxeis declarados, imagens que falham a descodificação e imagens cujo tamanho reamostrado não seria menor do que o original são saltadas sem fazer falhar a chamada
Exemplo
PDF.LoadFromFile('scan.pdf', '');
PDF.DownsampleImages(150, 80, 0);
PDF.SaveToFile('scan-compressed.pdf');