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

MaxDPILimiar 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
QualityQualidade de compressão JPEG entre 1 e 100 usada na recodificação; passe 0 para recodificar sem perdas como PNG
Filter0 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');