function GetImageObjectRenderedBitmap(Index: Integer): TBitmap;
| Index | Integer. Nullbasierter Index eines Bildseitenobjekts im Bereich 0 .. ObjectCount - 1. Ein Objekt anderen Typs löst einen EPdfError aus (Image object required) |
| Result | TBitmap. Eine neu erstellte Bitmap, die der Aufrufer besitzt und freigeben muss, oder nil, wenn der native Aufruf keine Bitmap erzeugt |
Rendert genau dieses Bildobjekt über den nativen Renderer (FPDFImageObj_GetRenderedBitmap) mit seiner aktuellen Matrix, seinem Farbraum und seinen Masken — das Ergebnis zeigt das Bild so, wie die Seite es zeigt, einschließlich Softmasks, Stencil-Keys und Farbumwandlungen, die die rohen Abtastwerte, die über Image verfügbar sind, nicht enthalten
Während des nativen Aufrufs wird die Render-Sperre gehalten, daher ist der Aufruf gegen gleichzeitiges Rendern auf derselben Komponente abgesichert. Die native Bitmap wird vor der Rückgabe konvertiert und zerstört; die resultierende TBitmap gehört dem Aufrufer
Der Aufruf erfordert, dass die aktuelle Seite aktiv ist, dass das Objekt an Index vom Typ otImage ist (siehe ObjectType) und dass der PDFium-Build den Rendering-Einstiegspunkt für einzelne Bilder exportiert; andernfalls wird ein EPdfError ausgelöst (Rendered image object bitmaps are not available)
Ein nil-Ergebnis ist kein Abbruchkriterium: Liefert der native Aufruf keine Bitmap, kann der Aufrufer auf das Zusammenschneiden einer vollständigen Seitenwiedergabe mit den Grenzen aus ObjectBounds ausweichen
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;