THotPDF.RegisterLuminositySoftMaskState 方法
构建一个有界的 DeviceGray 透明组 Form XObject,返回把该 Form 应用为明度 soft mask 的 ExtGState 资源名
声明
function RegisterLuminositySoftMaskState(BBoxLLx, BBoxLLy,
BBoxURx, BBoxURy: Single; const Content: AnsiString): AnsiString; overload;
function RegisterLuminositySoftMaskState(BBoxLLx, BBoxLLy,
BBoxURx, BBoxURy: Single; const Content: AnsiString;
const PatternNames: array of AnsiString;
const ImageResources: array of THPDFFormImageResource): AnsiString; overload;
参数
BBoxLLx、BBoxLLy、BBoxURx和BBoxURy定义有限正值的 Form 边界Content最多包含 16 MiB 调用方提供的 PDF 绘制操作符PatternNames最多提供 1024 个此前注册的图案名称ImageResources最多提供 1024 个已有彩色图像或共享的灰度图像 soft mask
行为
生成的 Form 声明 /Group << /S /Transparency /CS /DeviceGray /I true >>,生成的 mask 字典使用 /S /Luminosity 和黑色 /BC [0] 背景板
alpha 来源必须在注册前按灰度值绘制,这样 PDF 的明度运算才能复现 alpha,而不是从 RGB 颜色的视觉亮度推导不透明度
图案和图像 XObject 链接进 Form 资源字典,不复制其已编码的流
该方法要求 PDF 1.4 透明度,拒绝 PDF/A-1 输出,并在分配 Form 之前校验所有边界、资源数量、名称、序号和 soft mask 链接
返回值
返回稳定的 ExtGState 资源名,供 THPDFPage.SetGraphicsState 使用;当配置的 PDF 版本策略不接受 PDF 1.4 时返回空字符串
相关 API
THPDFFormImageResource · THotPDF.RegisterSoftMaskState · THotPDF.RegisterImageTilingPattern