THotPDF.ExtractLoadedImageToStream Method
Scrive una XObject immagine caricata direttamente in una destinazione di proprietà del chiamante senza creare un array di byte a dimensione piena
Dichiarazione
function ExtractLoadedImageToStream(ImageIndex: Integer;
Destination: TStream; Mode: THPDFLoadedImageStreamMode= lismEncoded): boolean;
Unità
HPDFDoc
Parametri
| Nome | Scopo |
|---|---|
ImageIndex | Indice in base zero da GetLoadedImageCount |
Destination | Flusso di proprietà del chiamante che riceve i byte nella sua posizione corrente |
Mode | lismEncoded copia il payload immagine nativo, mentre lismDecoded esegue la catena di filtri di flusso PDF generica |
Valore restituito
Restituisce True quando l'immagine selezionata e la modalità di estrazione completano con successo
Note d'uso
lismEncodedfunziona per i payload DCT, JPX, JBIG2, CCITT, Flate, LZW nativi e non filtrati e ripristina la posizione sorgentelismDecodedsupporta le famiglie generiche Flate, LZW, ASCII85, ASCIIHex e RunLength attraverso la pipeline di decodifica limitata- I filtri terminali nativi dell'immagine come DCT o JPX rimangono codificati e dovrebbero utilizzare
lismEncoded - L'estrazione decodificata consuma i budget di decodifica per catena e a livello di documento
- Una scrittura decodificata fallita può lasciare byte parziali nella destinazione, pertanto utilizzare un flusso temporaneo quando è richiesto un output atomico
Esempio
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;