Rozhraní IHPDFDecodedBitmapHandle

Poskytuje neměnný přístup počítaný referencemi k dekódovanému úložišti obrázku sdílenému mezipamětí načtených obrázků, čekajícími singleflight a vykreslovači

Deklarace

IHPDFDecodedBitmapHandle = interface
  function GetWidth: Integer;
  function GetHeight: Integer;
  function GetPixelFormat: TPixelFormat;
  function GetByteSize: Int64;
  function CreateBitmapCopy: TBitmap;
  procedure StretchDraw(DestinationDC: HDC;
    const Destination: TRect; StretchMode: Integer);
end;

Vlastnictví

Rozhraní udržuje dekódované úložiště naživu nezávisle na vyřazení z mezipaměti, zneplatnění mezipaměti a zničení dokumentu

Referenční počítání je bezpečné pro vlákna a sdílený měnitelný TBitmap se volajícím nikdy nezpřístupňuje

Kreslení a kopie

StretchDraw kreslí z neměnného sdíleného úložiště bez materializace bitmapy ve vlastnictví volajícího a serializuje přístup k podléhajícímu prostředku GDI

CreateBitmapCopy vrátí izolovaný TBitmap ve vlastnictví volajícího pro API, která vyžadují měnitelné pixely

Související API

THotPDF.AcquireLoadedImageStream · THotPDF.AcquireLoadedImageRegionAtResolution · Shardingovaná mezipaměť dekódování načtených obrázků