0

我有一个关于 IM 阅读 SVG 图像的问题,这真的让我很困扰。对于下面的 SVG 图像,

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg"  version="1.1" width="100%" height="100%" viewBox="0 0 100 100">
  <defs>
    <linearGradient id="grad1">
      <stop offset="0%" stop-color="white"/>
      <stop offset="100%" stop-color="black"/>
    </linearGradient>
  </defs>
  <rect x="10" y="10" width="80" height="80" fill="url(#grad1)" stroke="blue"/>
</svg>

当我使用identify -verbose sample.svg时,我得到了“几何:1x1+0+0”的结果。但其他人得到“几何:100x100+0+0”。似乎 100x100 是正确的。为什么会发生这种情况?

4

1 回答 1

1

在我自己的实验中,我注意到 Imagick 的默认 SVG 委托在处理包含以下内容的 SVG 时存在问题:

填充=“网址(#grad_or_imagepattern)”

就我而言,并在此处解释:http ://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t= 23525,Imagick“可以使用其内部 MSVG 或外部代表用于 RSVG 或我相信 Inkscape”(如果有的话)。

我建议您按顺序执行以下操作: 1. 卸载 Imagick 2. 安装 Inscape 3. 将 Inscape 目录添加到系统路径 4. 安装 Imagick

这样,Imagick 将能够要求 Inscape 进行转换。一切顺利,

于 2013-09-27T20:56:39.590 回答