Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svg Imagemagick:不一致的图形原语定义'path';_Svg_Imagemagick - Fatal编程技术网

Svg Imagemagick:不一致的图形原语定义'path';

Svg Imagemagick:不一致的图形原语定义'path';,svg,imagemagick,Svg,Imagemagick,SVG有问题(我清除了所有与问题无关的内容): 输出以以下内容结束: identify: non-conforming drawing primitive definition `path' @ error/draw.c/DrawImage/3284. 我已将问题缩小到第12行: clip-path="url(#SVGID_2_)" 清理SVG并不是一个真正的选项,因为用户将能够上传他们自己的SVG。因此,问题是: A) 为什么会这样 B) 是否可以对Imagemagick执行任何操作来解决

SVG有问题(我清除了所有与问题无关的内容):

输出以以下内容结束:

identify: non-conforming drawing primitive definition `path' @ error/draw.c/DrawImage/3284.
我已将问题缩小到第12行:

clip-path="url(#SVGID_2_)"
清理SVG并不是一个真正的选项,因为用户将能够上传他们自己的SVG。因此,问题是:

A) 为什么会这样

B) 是否可以对Imagemagick执行任何操作来解决此问题?

如果您运行:

identify -list delegate
您将看到ImageMagick将处理
SVG
文件的代理发送到
rsvg
,因此请确保该文件是最新的

还要检查是否需要添加任何开关或选项来处理任何特定的、麻烦的SVG元素,这些可以编辑到您的
delegates.xml
文件中

为什么会这样

正如评论中指出的,内部编码器/解码器正在将SVG转换为MVG。
使用xlink:href=“#SVGID_1”
延迟(或者称为重定向?)不被理解;因此,省略了。如果您运行以下命令

convert clipPath.svg mvg:-
将输出如下内容(添加空格缩进)

请注意,剪辑路径“SVGID_2_”没有任何内容(推送和弹出堆栈之间没有内容),并且
defs
->
图形上下文
未标识为剪辑路径

如果您重写了MVG,它应该可以正常工作

push graphic-context
  viewbox 0 0 330 360
  affine 1 0 0 1 0 0
  push defs
    push clip-path 'SVGID_2_'
      push graphic-context
        path 'M166.3,7.4c-1.2,0-2.4,0-3.6,0c-10.4,0.2-20.9,1.3-26.9,3.8c-31.3,15.1-36.7,36.2-35.4,65.6'
      pop graphic-context
    pop clip-path
  pop defs

  push graphic-context
    clip-path 'url(#SVGID_2_)'
    path 'M166.7 1.5S129-4.3 112.9 3.8c-7.3 3.7-12 11.7-15.5 19.1-5.2 11.2-6.8 36.4-6.8 36.4l15.9 11.4c.2-8.2 6.9-17.4 10.5-25.1 3.9-8.2 1.1-6.7 3.6-8.2 15.4-5.9 30.5-1 46 0 16.5 1.1 33.4-6.4 46 0 2.6 1.5 1.6-.6 3.6 8.2 1.6 6.8 12 18.8 10.5 25.1l15.9-11.4s-1.6-25.2-6.8-36.4c-3.4-7.4-8.2-15.4-15.5-19.1-15.9-8.1-53.6-2.3-53.6-2.3z'
  pop graphic-context
pop graphic-context
是否可以对Imagemagick执行任何操作来修复此问题


升级到ImageMagick 7将提供一些改进,但正如Mark正确指出的那样,如果您将代理切换到支持高级功能的SVG渲染引擎,您将获得更多。读取ImageMagick附带的delegates.xml文件,或。示例以内联注释的形式给出,如果您已经有了rsvg或类似版本,我也不会感到惊讶,已安装在系统上。

magick Identification-verbose clipPath.svg对我来说运行正常,在Windows 10上没有错误/警告版本7.0.5-5。magick Identification-在Mac OSX Sierra和IM 7.0.7.22上,svg文件上的verbose对我来说运行正常。它可能是您与ImageMagick一起使用的svg委托。它可以是IM内部MSVG(不太好)、RSVG代理库(更好)或Inkscape(可能是最好的)。你用哪一种?或者可能是RSVG或Inkscape的旧版本。我在上面的测试使用librsvg@2.40.18_0运行良好
convert clipPath.svg mvg:-
push graphic-context
  viewbox 0 0 330 360
  affine 1 0 0 1 0 0
  push defs
    push graphic-context
      path 'M166.3,7.4c-1.2,0-2.4,0-3.6,0c-10.4,0.2-20.9,1.3-26.9,3.8c-31.3,15.1-36.7,36.2-35.4,65.6'
    pop graphic-context
  pop defs
  push clip-path 'SVGID_2_'
  pop clip-path
  push graphic-context
    clip-path 'url(#SVGID_2_)'
    path 'M166.7 1.5S129-4.3 112.9 3.8c-7.3 3.7-12 11.7-15.5 19.1-5.2 11.2-6.8 36.4-6.8 36.4l15.9 11.4c.2-8.2 6.9-17.4 10.5-25.1 3.9-8.2 1.1-6.7 3.6-8.2 15.4-5.9 30.5-1 46 0 16.5 1.1 33.4-6.4 46 0 2.6 1.5 1.6-.6 3.6 8.2 1.6 6.8 12 18.8 10.5 25.1l15.9-11.4s-1.6-25.2-6.8-36.4c-3.4-7.4-8.2-15.4-15.5-19.1-15.9-8.1-53.6-2.3-53.6-2.3z'
  pop graphic-context
pop graphic-context
push graphic-context
  viewbox 0 0 330 360
  affine 1 0 0 1 0 0
  push defs
    push clip-path 'SVGID_2_'
      push graphic-context
        path 'M166.3,7.4c-1.2,0-2.4,0-3.6,0c-10.4,0.2-20.9,1.3-26.9,3.8c-31.3,15.1-36.7,36.2-35.4,65.6'
      pop graphic-context
    pop clip-path
  pop defs

  push graphic-context
    clip-path 'url(#SVGID_2_)'
    path 'M166.7 1.5S129-4.3 112.9 3.8c-7.3 3.7-12 11.7-15.5 19.1-5.2 11.2-6.8 36.4-6.8 36.4l15.9 11.4c.2-8.2 6.9-17.4 10.5-25.1 3.9-8.2 1.1-6.7 3.6-8.2 15.4-5.9 30.5-1 46 0 16.5 1.1 33.4-6.4 46 0 2.6 1.5 1.6-.6 3.6 8.2 1.6 6.8 12 18.8 10.5 25.1l15.9-11.4s-1.6-25.2-6.8-36.4c-3.4-7.4-8.2-15.4-15.5-19.1-15.9-8.1-53.6-2.3-53.6-2.3z'
  pop graphic-context
pop graphic-context