Metoden THotPDF.ExtractLoadedImageToStream
Skriver ett inläst bild-XObject direkt till ett anroparägt mål utan att skapa en fullstor byte-array
Deklaration
function ExtractLoadedImageToStream(ImageIndex: Integer;
Destination: TStream; Mode: THPDFLoadedImageStreamMode= lismEncoded): boolean;
Unit
HPDFDoc
Parametrar
| Namn | Syfte |
|---|---|
ImageIndex | Nollbaserat index från GetLoadedImageCount |
Destination | Anroparägd ström som tar emot byte vid sin aktuella position |
Mode | lismEncoded kopierar den inbyggda bildnyttolasten, medan lismDecoded kör den generella PDF-strömfilterkedjan |
Returvärde
Returnerar True när den valda bilden och extraheringsläget slutförs framgångsrikt
Användningsanteckningar
lismEncodedfungerar för inbyggda DCT-, JPX-, JBIG2-, CCITT-, Flate-, LZW- och ofiltrerade nyttolaster och återställer källpositionenlismDecodedstöder de generella Flate-, LZW-, ASCII85-, ASCIIHex- och RunLength-familjerna genom den bundna avkodningspipelinen- Bildinbyggda terminalfilter såsom DCT eller JPX förblir kodade och bör använda
lismEncoded - Avkodad extrahering förbrukar per-kedje- och dokumentvida avkodningsbudgetar
- En misslyckad avkodad skrivning kan lämna partiella byte i målet, så använd en temporär ström när atomisk utmatning krävs
Exempel
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;