function GetImageObjectRenderedBitmap(Index: Integer): TBitmap;
| Index | Integer。影像頁面物件的自零起算索引,範圍為 0 .. ObjectCount - 1。其他類型的物件會引發 EPdfError(Image object required) |
| Result | TBitmap。新建立的點陣圖,由呼叫端持有且必須釋放;原生呼叫未產生點陣圖時為 nil |
透過原生渲染器(FPDFImageObj_GetRenderedBitmap)只渲染該影像物件,並套用其目前的矩陣、色彩空間與遮罩 — 結果呈現的方式與頁面呈現影像的方式一致,包括軟遮罩、鏤空鍵與色彩轉換,而透過 Image 取得的原始取樣資料並不包含這些效果
原生呼叫期間會持有渲染鎖,因此對同一元件上的並行渲染是安全的。原生點陣圖會在傳回前完成轉換與銷毀;產生的 TBitmap 屬於呼叫端
此呼叫要求目前頁面處於作用中狀態、Index 位置的物件類型為 otImage(請檢查 ObjectType),且 PDFium 建置有匯出逐影像渲染進入點;否則會引發 EPdfError(Rendered image object bitmaps are not available)
結果為 nil 並不是中止條件:當原生呼叫沒有產生點陣圖時,呼叫端可以退而求其次,用 ObjectBounds 提供的邊界裁切整頁渲染結果
var
Bmp: TBitmap;
begin
if Pdf1.ObjectType[7] = otImage then
begin
Bmp := Pdf1.GetImageObjectRenderedBitmap(7);
if Bmp <> nil then
try
Image1.Picture.Bitmap.Assign(Bmp);
// use Bmp for export, comparison or recognition
finally
Bmp.Free;
end;
end;
end;