DownsampleImages

Gestione dei documenti, immagini

Descrizione

Riduce la risoluzione degli XObject immagine incorporati la cui risoluzione effettiva supera MaxDPI. Ogni immagine candidata viene decodificata, ricampionata preservandone le proporzioni e ricodificata come DCTDecode (JPEG) quando Quality è maggiore di 0 oppure come FlateDecode (PNG) lossless quando Quality è 0; lo stream dell'immagine e le voci /Filter, /Width e /Height vengono riscritte sul posto

Sintassi

Delphi

Function TPDFlib.DownsampleImages(MaxDPI, Quality, Filter: Integer): Integer;

Parametri

MaxDPISoglia di risoluzione in DPI; le immagini la cui risoluzione effettiva stimata supera questo valore vengono ricampionate. Valori sotto 24 interrompono la chiamata
QualityQualità di compressione JPEG tra 1 e 100 usata per la ricodifica; passare 0 per ricodificare senza perdita come PNG
Filter0 seleziona il filtro box, che media blocchi di pixel sorgente; qualsiasi altro valore seleziona il ricampionamento bilineare

Valori restituiti

Il numero di XObject immagine riscritti, oppure 0 quando MaxDPI è sotto 24 o nessuna immagine superava la soglia

Osservazioni

La risoluzione effettiva viene stimata dalla larghezza in pixel dichiarata dell'immagine rispetto a una pagina in formato Letter, quindi il passaggio è conservativo e le immagini in qualità di stampa vengono lasciate stare quando vi è dubbio

Le immagini più piccole di 8 x 8 pixel dichiarati, le immagini che non decodificano e le immagini la cui dimensione ricampionata non risulterebbe più piccola dell'originale vengono saltate senza far fallire la chiamata

Esempio

PDF.LoadFromFile('scan.pdf', '');
PDF.DownsampleImages(150, 80, 0);
PDF.SaveToFile('scan-compressed.pdf');