function GetImageObjectRenderedBitmap(Index: Integer): TBitmap;
| Index | Integer. אינדקס מבוסס אפס של אובייקט עמוד של תמונה, בטווח 0 .. ObjectCount - 1. אובייקט מסוג אחר מעלה EPdfError (Image object required). |
| Result | TBitmap. bitmap חדש שנוצר, שהקורא הוא הבעלים שלו וחייב לשחרר אותו, או nil כאשר הקריאה המקורית אינה מייצרת bitmap. |
מרנדר רק את אותו אובייקט תמונה דרך ה-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
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;