function GetImageObjectRenderedBitmap(Index: Integer): TBitmap;
| Index | Integer. Index de la zero al unui obiect de pagină de tip imagine, în intervalul 0 .. ObjectCount - 1. Un obiect de alt tip ridică un EPdfError (Image object required) |
| Result | TBitmap. Un bitmap creat proaspăt, pe care apelantul îl deține și trebuie să îl elibereze, sau nil când apelul nativ nu produce niciun bitmap |
Randează doar acel obiect imagine prin randatorul nativ (FPDFImageObj_GetRenderedBitmap), cu matricea, spațiul de culori și măștile sale curente aplicate — rezultatul arată imaginea așa cum o arată pagina, inclusiv măștile soft, cheile de șablon și conversiile de culori, pe care eșantioanele brute disponibile prin Image nu le poartă
Blocajul de randare este deținut pe durata apelului nativ, deci operația este sigură față de randarea concurentă pe aceeași componentă. Bitmapul nativ este convertit și distrus înainte de returnare; TBitmap-ul rezultat aparține apelantului
Apelul cere ca pagina curentă să fie activă, obiectul de la Index să fie de tip otImage (verificați ObjectType) și un build PDFium care exportă punctul de intrare de randare per imagine; în caz contrar este ridicat un EPdfError (Rendered image object bitmaps are not available)
Un rezultat nil nu este o condiție de abandon: când apelul nativ nu produce niciun bitmap, apelantul poate căde pe decuparea unei randări complete de pagină, folosind limitele din 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;