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

MaxDPILimiar 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
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 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');