THotPDF.ExtractLoadedImageToStream 方法
将一个已加载的图像 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;