DownsampleImages
Gestion de documents, images
Description
Réduit la résolution des XObjects d’images intégrées dont la résolution effective dépasse MaxDPI. Chaque image candidate est décodée, rééchantillonnée en préservant son rapport largeur/hauteur, puis réencodée en DCTDecode (JPEG) lorsque Quality est supérieur à 0, ou en FlateDecode sans pertes (PNG) lorsque Quality vaut 0 ; le flux d’image et les entrées /Filter, /Width et /Height sont réécrits sur place
Syntaxe
Delphi
Function TPDFlib.DownsampleImages(MaxDPI, Quality, Filter: Integer): Integer;Paramètres
| MaxDPI | Seuil de résolution en DPI ; les images dont la résolution effective estimée dépasse cette valeur sont rééchantillonnées. Les valeurs inférieures à 24 abandonnent l’appel |
|---|---|
| Quality | Qualité de compression JPEG entre 1 et 100 utilisée pour le réencodage ; passez 0 pour réencoder sans pertes en PNG |
| Filter | 0 sélectionne le filtre boîte, qui effectue la moyenne de blocs de pixels sources ; toute autre valeur sélectionne le rééchantillonnage bilinéaire |
Valeurs de retour
Le nombre de XObjects d’images réécrits, ou 0 lorsque MaxDPI est inférieur à 24 ou qu’aucune image ne dépasse le seuil
Remarques
La résolution effective est estimée à partir de la largeur en pixels déclarée de l’image rapportée à une page de largeur Letter, si bien que la passe reste prudente et que les images de qualité d’impression sont laissées intactes en cas de doute
Les images de moins de 8 x 8 pixels déclarés, les images qui échouent au décodage et les images dont la taille rééchantillonnée ne serait pas plus petite que l’originale sont ignorées sans faire échouer l’appel
Exemple
PDF.LoadFromFile('scan.pdf', '');
PDF.DownsampleImages(150, 80, 0);
PDF.SaveToFile('scan-compressed.pdf');