PDFium Delphi Component Docs

GetImageObjectRenderedBitmap متد

کامپوننت: TPdf  ·  واحد: PDFium
یک شیء صفحهٔ تصویری را به‌تنهایی رندر می‌کند و پیکسل‌های رمزگشایی‌شده را به‌صورت بیت‌مپی در مالکیت فراخوان برمی‌گرداند

Syntax

function GetImageObjectRenderedBitmap(Index: Integer): TBitmap;

IndexInteger. اندیس مبتنی بر صفر یک شیء صفحهٔ تصویری، در بازهٔ 0 .. ObjectCount - 1. شیئی از نوع دیگر EPdfError برپا می‌کند (Image object required)
ResultTBitmap. بیت‌مپی تازه‌ساخته که فراخوان مالک آن است و باید آزادش کند، یا nil وقتی فراخوانی نیتیو بیت‌مپی تولید نمی‌کند

Description

فقط همان شیء تصویری را از طریق رندرکنندهٔ نیتیو (FPDFImageObj_GetRenderedBitmap) با ماتریس، فضای رنگ و ماسک‌های فعلی‌اش رندر می‌کند — نتیجه تصویر را همان‌گونه نشان می‌دهد که صفحه نشان می‌دهد؛ شامل soft maskها، کلیدهای stencil و تبدیل‌های رنگ، که در نمونه‌های خام در دسترس از طریق Image وجود ندارند

قفل رندر در طول فراخوانی نیتیو گرفته می‌شود، پس در برابر رندر هم‌زمان روی همین کامپوننت امن است. بیت‌مپ نیتیو پیش از بازگشت تبدیل و نابود می‌شود و TBitmap حاصل متعلق به فراخوان است

این فراخوانی لازم دارد صفحهٔ فعلی فعال باشد، شیء واقع در Index از نوع otImage باشد (با ObjectType بررسی کنید) و بیلد PDFium نقطهٔ ورود رندر به‌ازای هر تصویر را صادر کرده باشد؛ در غیر این صورت EPdfError برپا می‌شود (Rendered image object bitmaps are not available)

نتیجهٔ nil یک شرط توقف نیست: وقتی فراخوانی نیتیو بیت‌مپی به دست نمی‌دهد، فراخوان می‌تواند به برش یک رندر تمام‌صفحه با کرانه‌های برگرفته از ObjectBounds متوسل شود

Remarks

Example

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;

See Also

GetTextObjectRenderedBitmap, ObjectBitmap, ObjectType, ObjectBounds, ImageInfo