|
THotPDF.AddImageWithSMask
|
ด้านบน ก่อนหน้า ถัดไป |
|
เพิ่ม XObject ของรูปภาพสีร่วมกับ XObject ของรูปภาพ soft-mask ของ PDF 1.4 (ISO 32000-1 8.9.5.4) เพื่อให้รูปภาพผลลัพธ์มีความโปร่งใสแบบพิกเซลต่อพิกเซลอย่างสมบูรณ์ แทนที่จะเป็นขีดจำกัดเปิด/ปิดแบบไบนารีของพาธ /ImageMask แบบเดิม
Delphi syntax: function AddImageWithSMask(Width, Height: Integer; const RGB: TBytes; const Alpha: TBytes): Integer; function AddImageWithSMask32(Bitmap32: TBitmap): Integer;
C++ syntax: __property int AddImageWithSMask(int Width, int Height, const TBytes& RGB, const TBytes& Alpha); __property int AddImageWithSMask32(TBitmap* Bitmap32);
คำอธิบาย รูปภาพ SMask จะนำพาแชนเนล DeviceGray แบบ 8 บิตที่เป็นอิสระ โดยที่ความสว่างจะเป็นตัวขับเคลื่อนอัลฟาของรูปภาพสีในเวลาที่วาด (0 = โปร่งใสเต็มที่, 255 = ทึบแสงเต็มที่) HotPDF จะส่งออกทั้งสองระนาบเป็น XObjects ของรูปภาพที่บีบอัดแบบ Flate, เชื่อมโยงรายการ /SMask ของพจนานุกรมรูปภาพสีที่ XObject ของ soft-mask และส่งกลับดัชนี XImages ที่ THPDFPage.ShowImage ยอมรับโดยตรง - โค้ดสำหรับการจัดวางปลายน้ำทั้งหมดจะทำงานได้เหมือนเดิมโดยไม่มีการเปลี่ยนแปลง
AddImageWithSMask(Width, Height, RGB, Alpha) - Width / Height: ขนาดพิกเซล, เหมือนกันสำหรับทั้งสองระนาบ - RGB: Width * Height * 3 ไบต์, row-major top-down, R G B สลับกันต่อพิกเซล (ไม่มีการแพดดิ้งแถว) - Alpha: Width * Height ไบต์, row-major top-down, ความสว่างแบบ 8 บิตต่อพิกเซล
AddImageWithSMask32(Bitmap32) โอเวอร์โหลดที่สะดวกสำหรับเวิร์กโฟลว์ทั่วไป "ฉันมี PNG ที่มีอัลฟา" โดย TBitmap ต้องมี PixelFormat = pf32bit; HotPDF จะอ่านแถว BGRA ScanLine โดยตรง จัดเรียงใหม่เป็น R G B สำหรับระนาบสี และคัดลอกไบต์ A ไปยังระนาบอัลฟาก่อนจะส่งต่อไปยังจุดเข้า AddImageWithSMask ดิบ
ค่าที่ส่งกลับ: ดัชนีใน XImages ที่เหมือนกับดัชนีที่ AddImage ส่งกลับ; ส่งผ่านค่านี้ไปยัง THPDFPage.ShowImage เพื่อวางรูปภาพบนหน้าเอกสาร ส่งกลับค่า -1 เมื่อ StrictVersionLock เปิดใช้งานและ Version ที่ใช้งานอยู่ต่ำกว่า PDF 1.4 (มิฉะนั้นเวอร์ชันจะเพิ่มขึ้นโดยอัตโนมัติเป็น 1.4)
Code Example
ดูเพิ่มเติม AddImage, THPDFPage.ShowImage, Version, การสนับสนุนตัวกรอง PDF
|