function GetImageObjectRenderedBitmap(Index: Integer): TBitmap;
| Index | Integer. Индекс на page обект изображение, броен от нула, в диапазона 0 .. ObjectCount - 1. Обект от друг тип вдига EPdfError (Image object required). |
| Result | TBitmap. Новосъздаден bitmap, който извикващият притежава и трябва да освободи, или nil, когато native извикването не произведе bitmap. |
Рендира само този обект изображение през native рендерера (FPDFImageObj_GetRenderedBitmap) с приложени текущата му матрица, цветово пространство и маски — резултатът показва изображението така, както го показва страницата, включително soft masks, stencil ключове и цветови преобразувания, които суровите семпли, достъпни чрез Image, не носят
Рендериращият lock се държи за времето на native извикването, така че то е безопасно при едновременен рендер върху същия компонент. Native bitmap-ът се преобразува и унищожава преди връщането; полученият TBitmap принадлежи на извикващия
Извикването изисква текущата страница да е активна, обектът на Index да е от тип otImage (проверете ObjectType) и компилация на PDFium, която експортира входната точка за рендер на отделно изображение; в противен случай се вдига EPdfError (Rendered image object bitmaps are not available)
Резултат nil не е условие за прекъсване: когато native извикването не даде 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;