Metoda THotPDF.ExtractLoadedImageToStream
Zapisuje jeden XObject načteného obrazu přímo do cíle vlastněného volajícím bez vytvoření pole bajtů plné velikosti
Deklarace
function ExtractLoadedImageToStream(ImageIndex: Integer;
Destination: TStream; Mode: THPDFLoadedImageStreamMode= lismEncoded): boolean;
Jednotka
HPDFDoc
Parametry
| Název | Účel |
|---|---|
ImageIndex | Index od nuly z funkce GetLoadedImageCount |
Destination | Proud vlastněný volajícím, který přijímá bajty na své aktuální pozici |
Mode | lismEncoded kopíruje nativní payload obrazu, zatímco lismDecoded spouští generický řetězec filtrů proudu PDF |
Návratová hodnota
Vrací True, když vybraný obraz a režim extrakce úspěšně dokončí
Poznámky k použití
lismEncodedfunguje pro nativní DCT, JPX, JBIG2, CCITT, Flate, LZW a nefiltrované payloady a obnovuje pozici zdrojelismDecodedpodporuje generické rodiny Flate, LZW, ASCII85, ASCIIHex a RunLength přes ohraničený dekódovací pipeline- Obrazově-nativní koncové filtry jako DCT nebo JPX zůstávají zakódované a měly by použít
lismEncoded - Dekódovaná extrakce spotřebovává dekódovací rozpočty pro každý řetězec i na úrovni dokumentu
- Selhaný dekódovaný zápis může v cíli zanechat částečné bajty, proto použijte dočasný proud, když je vyžadován atomický výstup
Příklad
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;