THotPDF.RegisterMultiStopRadialGradient 方法
注册可复用的原生 PDF 径向 shading,在内圆和外圆之间对两个或更多颜色 stop 做插值
声明
function RegisterMultiStopRadialGradient(X0, Y0, R0, X1, Y1, R1: Single; const StopPositions: array of Single; const StopColors: array of Single; ComponentsPerStop: Integer): AnsiString;
单元
HPDFDoc
参数
| 名称 | 用途 |
|---|---|
X0, Y0, R0 | 内圆的圆心和非负半径 |
X1, Y1, R1 | 外圆的圆心和非负半径 |
StopPositions | 两个或更多严格递增的有限偏移量,取值为闭区间 0 到 1 |
StopColors | 平铺排列的有限颜色分量,取值为闭区间 0 到 1 |
ComponentsPerStop | 1 选择 DeviceGray,3 选择 DeviceRGB,4 选择 DeviceCMYK |
返回值
返回生成的 Pattern 资源名,供 THPDFPage.SetFillPattern 或 THPDFPage.SetStrokePattern 使用
行为
- 用有界的 Function Type 2 分段构建一个 PDF Function Type 3 stitching function
- 写出 Shading Type 3 字典,并把它包装进可复用的 Pattern Type 2 资源
- 把首个和最后一个 stop 颜色延伸到径向域之外
- 拒绝非有限坐标、负半径、畸形颜色数组、重复偏移量,以及超出有效范围的偏移量或颜色分量
- 要求 PDF 1.3,并遵循文档 version-lock 策略
示例
PatternName := Document.RegisterMultiStopRadialGradient(
300, 400, 0, 300, 400, 250,
[0.0, 0.5, 1.0],
[1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
0.0, 0.0, 1.0], 3);
Document.CurrentPage.SetFillPattern(PatternName);