mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-29 08:46:55 +08:00
1 parent
84a67d17df
commit
5d599dc835
5 files changed
+86
-237
No files matched your search
@@ -176,7 +176,7 @@ func (p *pdfImporter) compositePattern(paint pdfgo.Paint) (*pdfCompositePattern,
|
||||
return pattern, nil
|
||||
}
|
||||
|
||||
// directCompositeNode 检查图元及其图案单元能否独立保留,不忽略单元内的背景混合
|
||||
// directCompositeNode 检查图元、透明组和图案单元能否独立保留,逐层核对背景混合
|
||||
// 入参: node 图元, space 混合空间
|
||||
// 返回: bool 是否可直接转换, error 图案解析错误
|
||||
func (p *pdfImporter) directCompositeNode(node pdfCompositeNode, space *pdfgo.ColorSpace) (bool, error) {
|
||||
@@ -219,7 +219,11 @@ func (p *pdfImporter) directCompositeNode(node pdfCompositeNode, space *pdfgo.Co
|
||||
}
|
||||
}
|
||||
}
|
||||
if !node.opaque(space) && !(space.SRGBEquivalent() && node.direct()) {
|
||||
directGroup := false
|
||||
if group := node.group; group != nil && !group.Knockout && group.Alpha == 1 && group.SoftMask == nil && pdfNormalBlend(group.BlendMode) && (group.ColorSpace == nil || group.ColorSpace.SRGBEquivalent()) {
|
||||
directGroup = true
|
||||
}
|
||||
if !node.opaque(space) && !(space.SRGBEquivalent() && (directGroup || node.direct())) {
|
||||
if node.textObject != nil && space.SRGBEquivalent() {
|
||||
for _, child := range node.children {
|
||||
if direct, err := p.directCompositeNode(child, space); err != nil || !direct {
|
||||
|
||||
Reference in new issue
Block a user