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