Méthode THotPDF.ExtractLoadedImageToStream
Écrit un XObject image chargé directement vers une destination propriétaire de l’appelant sans créer de tableau d’octets en pleine taille
Déclaration
function ExtractLoadedImageToStream(ImageIndex: Integer;
Destination: TStream; Mode: THPDFLoadedImageStreamMode= lismEncoded): boolean;
Unité
HPDFDoc
Paramètres
| Nom | Rôle |
|---|---|
ImageIndex | Indice en base zéro issu de GetLoadedImageCount |
Destination | Flux propriétaire de l’appelant qui reçoit les octets à sa position courante |
Mode | lismEncoded copie la charge utile d’image native, tandis que lismDecoded exécute la chaîne de filtres de flux PDF générique |
Valeur de retour
Renvoie True lorsque l’image sélectionnée et le mode d’extraction se terminent avec succès
Notes d’utilisation
lismEncodedfonctionne pour les charges utiles natives DCT, JPX, JBIG2, CCITT, Flate, LZW et non filtrées et restaure la position sourcelismDecodedprend en charge les familles génériques Flate, LZW, ASCII85, ASCIIHex et RunLength via le pipeline de décodage borné- Les filtres terminaux natifs à l’image tels que DCT ou JPX restent codés et devraient utiliser
lismEncoded - L’extraction décodée consomme les budgets de décodage par chaîne et à l’échelle du document
- Une écriture décodée défaillante peut laisser des octets partiels dans la destination, donc utilisez un flux temporaire lorsqu’une sortie atomique est requise
Exemple
Output := TFileStream.Create('image.bin', fmCreate);
try
if not PDF.ExtractLoadedImageToStream(0, Output, lismEncoded) then
raise Exception.Create('Image extraction failed');
finally
Output.Free;
end;