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
| MaxDPI | Soglia di risoluzione in DPI; le immagini la cui risoluzione effettiva stimata supera questo valore vengono ricampionate. Valori sotto 24 interrompono la chiamata |
|---|---|
| Quality | Qualità di compressione JPEG tra 1 e 100 usata per la ricodifica; passare 0 per ricodificare senza perdita come PNG |
| Filter | 0 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');