ExternalizeInlineImages

Optimisation de documents, traitement des images, performances

Description

Recherche les images incorporées identiques octet pour octet dans le contenu sélectionné et remplace leurs définitions BI à EI répétées par des références à un Image XObject partagé

Syntaxe

Delphi

Function TPDFlib.ExternalizeInlineImages(Const PageRange: WideString= ''; MinimumOccurrences: Integer= 2): Integer;

Paramètres

PageRangePlage de pages à base 1 telle que 1,3,5-7, ou chaîne vide pour toutes les pages ; les numéros de page en double sont ignorés
MinimumOccurrencesLe nombre minimal d'occurrences exactes requis pour la promotion, qui doit être au moins égal à 2

Valeurs de retour

Nombre d'occurrences d'images incorporées remplacées, ou 0 si aucun groupe n'est admissible, la plage est non valide, le minimum inférieur à 2 ou l'opération annulée avant application

Remarques

Le regroupement comprend les dimensions, la profondeur en bits, les indicateurs de masque d’image et d’interpolation, l’espace colorimétrique, la chaîne de filtres, les paramètres et le tableau de décodage ainsi que la charge utile encodée, avec une indexation SHA-256 suivie d’une comparaison exacte

Les images DeviceGray, DeviceRGB et DeviceCMYK directes et les masques de pochoir sont pris en charge ; les espaces nommés ou complexes et les entrées incorporées inconnues restent inchangés

Les filtres et paramètres de décodage existants sont préservés ; une charge utile non filtrée n'est compressée par Flate que si la représentation compressée est plus petite

Un groupe n'est promu que si une estimation prudente comprenant Image XObject, ressources de page et instructions de remplacement est inférieure aux plages incorporées d'origine

L'opération signale la progression de collecte et d'application, répond à Abort aux limites de pages, rétablit la page précédente et est idempotente

Une annulation pendant la collecte n'apporte aucune modification ; une annulation pendant l'application conserve les pages déjà terminées

Exemple

ReplacedImages:= PDF.ExternalizeInlineImages('1-200', 3);
Writeln(ReplacedImages);

Voir aussi

OptimizeImages, RecompressStreams, NormalizeContentStreams