THotPDF.DecodeLoadedImageRegionAtResolution Méthode
Décode un rectangle en coordonnées sources en laissant le décodeur choisir un niveau de résolution inférieur qui satisfait quand même la taille de sortie demandée
Déclaration
function DecodeLoadedImageRegionAtResolution(
AImageStream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
TargetPixelWidth, TargetPixelHeight: Integer): TBitmap;
Unité
HPDFDoc
Paramètres
| Nom | Rôle |
|---|---|
AImageStream | Stream XObject d’image chargée à décoder |
RegionLeft | Coordonnée source gauche, incluse |
RegionTop | Coordonnée source haute, incluse |
RegionRight | Coordonnée source droite, excluse |
RegionBottom | Coordonnée source basse, excluse |
TargetPixelWidth | Largeur décodée utile minimale avant l’échelle finale de rendu |
TargetPixelHeight | Hauteur décodée utile minimale avant l’échelle finale de rendu |
Valeur de retour
Renvoie un bitmap nouvellement alloué pour la région non vide après bornage, ou nil quand l’image ou la géométrie demandée ne peut pas être décodée
Sélection de résolution
- Le JPEG 2000 choisit la plus grande réduction en puissance de deux dont la largeur et la hauteur décodées restent toutes deux au moins égales à la taille de pixels demandée
- La sélection ne sous-échantillonne jamais aucune dimension et évite donc un agrandissement inutile avant le dessin
- La sélection de région native et la sélection de résolution sont combinées avant la reconstruction en ondelettes et l’expansion des pixels
- Les workers JPEG 2000 isolés contre les crashs reçoivent la même requête de réduction et utilisent un budget de sortie correspondant plus petit
- Lorsque le repli natif traite une région qui intersecte plusieurs tuiles de codestream, les tuiles indépendantes décodent en concurrence dans les limites d’annulation, de nombre de workers, de sortie et de mémoire crête
- Les résultats parallèles sont composés dans un ordre stable ligne par ligne, et un budget de travail insuffisant bascule de façon transparente vers le chemin de région séquentiel
- Une image JPEG en DeviceRGB ou DeviceGray passe par un décodeur DCT à taille réduite quand la région ou la taille demandée diffère de l’image complète : elle décode à une échelle DCT réduite qui couvre quand même la demande et renvoie la région rééchantillonnée à exactement la taille demandée
- Les autres formats d’images pris en charge, et les images JPEG dans d’autres espaces colorimétriques, conservent le décodage exact de région et laissent tout redimensionnement final à l’appelant
- L’appelant est propriétaire de tout bitmap renvoyé non nil et doit le libérer
Exemple
Preview := PDF.DecodeLoadedImageRegionAtResolution(
ImageStream, 0, 0, SourceWidth, SourceHeight, 320, 200);
try
Canvas.StretchDraw(TargetRect, Preview);
finally
Preview.Free;
end;