PDFium Delphi Component Docs

GetImageObjectRenderedBitmap Methode

Komponente: TPdf  ·  Unit: PDFium
Rendert ein einzelnes Bildseitenobjekt isoliert und liefert die dekodierten Pixel als Bitmap in Besitz des Aufrufers

Syntax

function GetImageObjectRenderedBitmap(Index: Integer): TBitmap;

IndexInteger. Nullbasierter Index eines Bildseitenobjekts im Bereich 0 .. ObjectCount - 1. Ein Objekt anderen Typs löst einen EPdfError aus (Image object required)
ResultTBitmap. Eine neu erstellte Bitmap, die der Aufrufer besitzt und freigeben muss, oder nil, wenn der native Aufruf keine Bitmap erzeugt

Beschreibung

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

Hinweise

Beispiel

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;

Siehe auch

GetTextObjectRenderedBitmap, ObjectBitmap, ObjectType, ObjectBounds, ImageInfo