feat(后端架构): 完善GG后端,修复渐变与选区异常
build.yaml / build (push) Successful in 37s

This commit is contained in:
xiaoqidun committed 2026-09-23 18:43:53 +08:00
1 parent c15547f0d2
commit f44d0d8a60
30 files changed
+2075 -463

No files matched your search

+2 -22
View File
@@ -15,6 +15,7 @@
package ofdgo
import (
"fmt"
"image"
"github.com/tdewolff/canvas"
@@ -68,28 +69,7 @@ func (r *clipRenderer) RenderImage(img image.Image, m canvas.Matrix) {}
// 入参: clips 裁剪对象, pageH 页面高度, bx 边界X坐标, by 边界Y坐标, objectCTM 对象CTM, parentCTM 父级CTM, boundaryInCTM 边界是否参与父级CTM
// 返回: *canvas.Path 路径对象
func (r *Renderer) buildObjectClipPath(clips *Clips, pageH float64, bx, by float64, objectCTM Matrix, parentCTM *Matrix, boundaryInCTM bool) *canvas.Path {
if clips == nil {
return nil
}
if !boundaryInCTM && parentCTM != nil {
objectCTM = parentCTM.Multiply(objectCTM)
}
if clips.TransFlag != nil && !*clips.TransFlag {
copy := *clips
copy.TransFlag = nil
clips = &copy
objectCTM = NewMatrix("")
}
matrix := TranslationMatrix(bx, by).Multiply(objectCTM)
if boundaryInCTM && parentCTM != nil {
matrix = parentCTM.Multiply(matrix)
}
geometry, err := r.Geometry()
if err != nil {
r.renderError = err
return nil
}
path, err := geometry.Clip(r, clips, matrix, nil)
path, err := r.objectGeometryClip(clips, fmt.Sprintf("%g %g 0 0", bx, by), objectCTM, RenderState{Parent: parentCTM, BoundaryInCTM: boundaryInCTM})
if err != nil {
r.renderError = err
return nil