THotPDF.ExtractLoadedImageToStream 方法
將一個已載入的 image XObject 直接寫入呼叫端擁有的目的地,而不建立全尺寸位元組陣列
宣告
function ExtractLoadedImageToStream(ImageIndex: Integer;
Destination: TStream; Mode: THPDFLoadedImageStreamMode= lismEncoded): boolean;
單元
HPDFDoc
參數
| 名稱 | 用途 |
|---|---|
ImageIndex | 來自 GetLoadedImageCount 的從零開始索引 |
Destination | 呼叫端擁有的串流,在其目前位置接收位元組 |
Mode | lismEncoded 複製原生影像承載,而 lismDecoded 執行通用 PDF 串流篩選器鏈 |
傳回值
當選取的影像與擷取模式成功完成時傳回 True
使用說明
lismEncoded適用於原生 DCT、JPX、JBIG2、CCITT、Flate、LZW 與未篩選的承載,並還原來源位置lismDecoded透過有界的解碼管線支援通用的 Flate、LZW、ASCII85、ASCIIHex 與 RunLength 家族- 影像原生的終端篩選器(如 DCT 或 JPX)仍保持編碼,應使用
lismEncoded - 解碼的擷取會耗用每鏈與文件層級的解碼預算
- 失敗的解碼寫入可能會在目的地留下部分位元組,因此需要原子輸出時請使用暫存串流
範例
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;