THotPDF.ExtractLoadedImageToStream メソッド
読み込んだ1つの画像 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;