IHPDFDecodedBitmapHandle 介面

提供對已解碼影像儲存的不可變參考計數存取,該儲存由已載入影像快取、singleflight 等待者與轉譯器共用

宣告

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;

所有權

此介面讓已解碼儲存獨立於快取逐出、快取失效與文件摧毀而保持存活

參考計數是執行緒安全的,共用的可變 TBitmap 絕不暴露給呼叫端

繪製與複製

StretchDraw 直接從不可變的共用儲存繪製,不必具現化呼叫端擁有的點陣圖,並會序列化對底層 GDI 資源的存取

CreateBitmapCopy 回傳由呼叫端擁有的隔離 TBitmap,供需要可變像素的 API 使用

相關 API

THotPDF.AcquireLoadedImageStream · THotPDF.AcquireLoadedImageRegionAtResolution · 分片已載入影像解碼快取