PDFium Delphi Component Docs

מתודת GetImageObjectRenderedBitmap

Component: TPdf  ·  Unit: PDFium
מרנדר אובייקט עמוד של תמונה אחד בנפרד ומחזיר את הפיקסלים המפוענחים כ-bitmap בבעלות הקורא

Syntax

function GetImageObjectRenderedBitmap(Index: Integer): TBitmap;

IndexInteger. אינדקס מבוסס אפס של אובייקט עמוד של תמונה, בטווח 0 .. ObjectCount - 1. אובייקט מסוג אחר מעלה EPdfError (Image object required).
ResultTBitmap. bitmap חדש שנוצר, שהקורא הוא הבעלים שלו וחייב לשחרר אותו, או nil כאשר הקריאה המקורית אינה מייצרת bitmap.

Description

מרנדר רק את אותו אובייקט תמונה דרך ה-renderer המקורי (FPDFImageObj_GetRenderedBitmap) עם המטריצה, מרחב הצבע והמסכות הנוכחיים שלו — התוצאה מציגה את התמונה כפי שהעמוד מציג אותה, כולל soft masks, stencil keys והמרות צבע, שהדגימות הגולמיות הזמינות דרך Image אינן נושאות

מנעול הרינדור מוחזק במהלך הקריאה המקורית, ולכן היא בטוחה מול רינדור מקביל על אותו רכיב. ה-bitmap המקורי מומר ומושמד לפני ההחזרה; ה-TBitmap שנוצר שייך לקורא

הקריאה דורשת שהעמוד הנוכחי יהיה פעיל, שהאובייקט ב-Index יהיה מסוג otImage (בדקו ב-ObjectType), ובניית PDFium שמייצאת את נקודת הכניסה לרינדור פר-תמונה; אחרת מועלה EPdfError (Rendered image object bitmaps are not available)

תוצאת nil אינה תנאי להפסקה: כאשר הקריאה המקורית אינה מניבה bitmap, הקורא יכול ליפול בחזרה לחיתוך רינדור עמוד מלא באמצעות הגבולות מ-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