IHPDFDecodedBitmapHandle Interface

Zapewnia niezmienny, zliczany referencyjnie dostęp do magazynu zdekodowanych obrazów współdzielonego przez cache załadowanych obrazów, oczekujących singleflight i mechanizmy renderujące

Deklaracja

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;

Własność

Interfejs utrzymuje magazyn zdekodowanych danych przy życiu niezależnie od eksmisji z cache, unieważnienia cache i zniszczenia dokumentu

Zliczanie referencji jest bezpieczne wątkowo, a współdzielony mutowalny TBitmap nigdy nie jest wystawiany wywołującym

Rysowanie i kopie

StretchDraw rysuje z niezmiennego magazynu współdzielonego bez materializowania bitmapy należącej do wywołującego i szereguje dostęp do leżącego pod spodem zasobu GDI

CreateBitmapCopy zwraca odizolowany TBitmap należący do wywołującego, dla API wymagających mutowalnych pikseli

Powiązane API

THotPDF.AcquireLoadedImageStream · THotPDF.AcquireLoadedImageRegionAtResolution · Shardowany cache dekodowania załadowanych obrazów