ImageMagick SVG 到 PNG 的转换会遵循混合模式吗?

Will ImageMagick SVG to PNG conversion respect blend modes?

ImageMagick 是否具有处理 SVG 混合模式的能力?例如,当将 SVG 转换为 PNG 时?

使用 ImageMagick-7.0.8-Q16,Inkscape 0.92.1 r15371

我有一个简单的 SVG,它有两个矩形,红色和蓝色,蓝色上有一个“排除”混合模式。它在我尝试过的任何浏览器上都按预期显示(请参阅 MS Edge sshot)

Inkscape 会正确地将 SVG 图像转换为 PNG,并遵循 mix 混合模式样式。但是,ImageMagick 不会(参见 results.png)。 ImageMagick 似乎只使用“正常”混合混合模式(FWIW,IMDisplay 显示相同的错误图像,混合模式被忽略)

有没有我需要更改的选项?或者,如果 ImageMagick 只是不处理 SVG 混合模式,是否有计划让它在未来这样做?

我的命令行如下:

inkscape test.svg -e Inkscape.png
magick test.svg IMagick.png

SVG 文件仅包含:

<svg width='300' height='300' xmlns = 'http://www.w3.org/2000/svg' 
     xmlns:xlink='http://www.w3.org/1999/xlink'>
<rect width='100%' height='100%' fill='#dddddd'/>
<rect x='50'  y='50' width='150' height='150' style='fill:red;' />
<rect x='100' y='100' width='150' height='150' 
      style='fill:blue;mix-blend-mode:exclusion' />
</svg

看起来 ImageMagick 正在使用其内部 MVG 解码器。确保 delegates.xml 文件有针对 svg:decode 的 inkscape 指令,并且这样的命令按预期工作。

类似于:

<delegate decode="svg:decode" stealth="True" command="&quot;inkscape&quot; &quot;%s&quot; --export-file=&quot;%s&quot; --export-dpi=&quot;%s&quot; --export-background=&quot;%s&quot; --export-background-opacity=&quot;%s&quot; &gt; &quot;%s&quot; 2&gt;&amp;1"/>

您可以通过 -verbose 选项验证使用的命令是否正确。

magick -verbose test.svg IMagick.png