function GetImageObjectRenderedBitmap(Index: Integer): TBitmap;
| Index | Integer. اندیس مبتنی بر صفر یک شیء صفحهٔ تصویری، در بازهٔ 0 .. ObjectCount - 1. شیئی از نوع دیگر EPdfError برپا میکند (Image object required) |
| Result | TBitmap. بیتمپی تازهساخته که فراخوان مالک آن است و باید آزادش کند، یا nil وقتی فراخوانی نیتیو بیتمپی تولید نمیکند |
فقط همان شیء تصویری را از طریق رندرکنندهٔ نیتیو (FPDFImageObj_GetRenderedBitmap) با ماتریس، فضای رنگ و ماسکهای فعلیاش رندر میکند — نتیجه تصویر را همانگونه نشان میدهد که صفحه نشان میدهد؛ شامل soft maskها، کلیدهای stencil و تبدیلهای رنگ، که در نمونههای خام در دسترس از طریق 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;