IHPDFDecodedBitmapHandle Interface

Poskytuje nemenný prístup s počítaním referencií k úložisku dekódovaných obrázkov zdieľanému vyrovnávacou pamäťou načítaných obrázkov, čakajúcimi singleflight a vykresľovačmi

Deklarácia

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;

Vlastníctvo

Rozhranie udržiava dekódované úložisko nažive nezávisle od vyradenia vyrovnávacej pamäte, zneplatnenia vyrovnávacej pamäte a zničenia dokumentu

Počítanie referencií je bezpečné pre vlákna a zdieľaný meniteľný TBitmap sa nikdy nevystavuje volajúcim

Kreslenie a kópie

StretchDraw kreslí z nemenného zdieľaného úložiska bez materializácie bitmapy vlastnenej volajúcim a serializuje prístup k podkladovému zdroju GDI

CreateBitmapCopy vracia izolovaný TBitmap vlastnený volajúcim pre API, ktoré vyžadujú meniteľné pixely

Súvisiace API

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