property BitmapCount: Integer; // read only
BitmapCount 傳回目前作用中頁面上的影像頁面物件數目
(PDF 1.7 規格第 8.9 節)。它與索引器 Bitmap[Index] 搭配使用,
後者會把底層影像串流解碼為完整算繪的 Delphi
TBitmap(32 位元 RGBA,可直接用於 Canvas.Draw、剪貼簿
傳輸,或存成 PNG/BMP)。
當 Active 為 False、PageNumber 無效,
或頁面沒有任何影像物件時,值為 0。此
數目與 ImageCount 相同;兩個屬性僅在其索引器的傳回型別上不同
— Image[Index] 傳回
TPdfImage 記錄,其 Data 持有已解碼的像素緩衝區,
RawData 則攜帶仍為編碼狀態的影像串流;而
Bitmap[Index] 會把該緩衝區包裝成由呼叫端擁有的受管理 VCL
TBitmap。
典型的迴圈是 for I := 0 to Pdf.BitmapCount - 1 do 再搭配
Pdf.Bitmap[I]。每次存取都會配置新的 TBitmap 並複製
像素 — 請勿在緊密的算繪迴圈中呼叫;重複使用時請快取點陣圖。
用畢後請釋放每個傳回的點陣圖,以及時釋放 GDI 資源。
TBitmap 的 Alpha 色板。ImageCount / Image[Index] 可避免 GDI 點陣圖
的配置負擔。
var I: Integer;
var Bmp: TBitmap;
for I := 0 to Pdf1.BitmapCount - 1 do
begin
Bmp := Pdf1.Bitmap[I];
try
Bmp.SaveToFile(Format('image_%d.bmp', [I]));
finally
Bmp.Free;
end;
end;