อินเทอร์เฟซ IHPDFDecodedBitmapHandle Interface

ให้การเข้าถึงพื้นที่เก็บภาพที่ถอดรหัสแล้วแบบไม่เปลี่ยนค่าและอ้างอิงด้วยการนับ ร่วมกันใช้โดยแคชภาพที่โหลด ผู้รอแบบ 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 · แคชการถอดรหัสภาพแบบแยกส่วน