Interfața IHPDFDecodedBitmapHandle

Oferă acces imuabil, cu numărare de referințe, la stocarea imaginilor decodate, partajată între cache-ul de imagini încărcate, waiter-ii singleflight și renderere

Declarație

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;

Ownership

Interfața ține stocarea decodată în viață independent de evacuarea din cache, de invalidarea cache-ului și de distrugerea documentului

Numărarea referințelor este thread-safe, iar TBitmap-ul partajat și mutabil nu este niciodată expus apelanților

Drawing and copies

StretchDraw desenează din stocarea partajată imuabilă, fără a materializa un bitmap deținut de apelant, și serializează accesul la resursa GDI subiacentă

CreateBitmapCopy returnează un TBitmap izolat, deținut de apelant, pentru API-urile care necesită pixeli mutabili

API-uri asociate

THotPDF.AcquireLoadedImageStream · THotPDF.AcquireLoadedImageRegionAtResolution · Sharded Loaded-Image Decode Cache