PDFium Delphi Component Docs

GetImageObjectRenderedBitmap metóda

Component: TPdf  ·  Unit: PDFium
Vykreslí jeden obrazový objekt strany samostatne a vráti dekódované pixely ako bitmapu vlastnenú volajúcim

Syntax

function GetImageObjectRenderedBitmap(Index: Integer): TBitmap;

IndexInteger. Index obrazového objektu strany založený na nule, v rozsahu 0 .. ObjectCount - 1. Objekt iného typu vyvolá EPdfError (Image object required)
ResultTBitmap. Novovytvorená bitmapa, ktorú volajúci vlastní a musí uvoľniť, alebo nil, keď natívne volanie nevyprodukuje žiadnu bitmapu

Description

Vykreslí práve ten obrazový objekt cez natívny renderer (FPDFImageObj_GetRenderedBitmap) s jeho aktuálnou maticou, farebným priestorom a maskami — výsledok ukazuje obraz tak, ako ho ukazuje strana, vrátane mäkkých masiek, šablónových kľúčov a farebných konverzií, ktoré nenesú surové vzorky dostupné cez Image

Počas natívneho volania je držaný zámok vykresľovania, takže volanie je bezpečné voči súbežnému vykresľovaniu na tej istej komponente. Natívna bitmapa sa skonvertuje a zničí pred návratom; výsledná TBitmap patrí volajúcemu

Volanie vyžaduje aktívnu aktuálnu stranu, objekt na Index typu otImage (skontrolujte ObjectType) a zostavenie PDFium, ktoré exportuje vstupný bod vykresľovania jednotlivých obrazov; inak sa vyvolá EPdfError (Rendered image object bitmaps are not available)

Výsledok nil nie je podmienkou prerušenia: keď natívne volanie nevydá bitmapu, volajúci môže namiesto toho orezať vykreslenie celej strany podľa hraníc z ObjectBounds

Remarks

Example

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;

See Also

GetTextObjectRenderedBitmap, ObjectBitmap, ObjectType, ObjectBounds, ImageInfo