【发布时间】:2018-09-06 07:03:58
【问题描述】:
似乎 (PHP) Imagick 不接受 CSS 样式,即使 <style> 位于 SVG 的 <def> 内。那是对的吗?我找不到这方面的参考资料。
如果是这样,还有什么方法可以得到想要的结果?也许用它们的定义替换所有类?所以,例如,如果有
.some-class {
stroke-dasharray: 5 5;
}
然后将class="some-class" 替换为stroke-dasharray="5 5",或者替换为style="stroke-dasharray: 5 5;",因为Imagick 似乎理解样式属性。
【问题讨论】:
-
我不确定我是否理解您的问题,但 Imagemagick 可以使用 RSVG 委托或 Inkscape 来处理 SVG 文件以将其呈现为某种光栅格式或查看它。必须安装 RSVG,然后编译 Imagemagick 以使用 RSVG。如果 Inkscape 在您的系统上,Imagemagick 无需重新编译即可使用它。
-
@fmw42 很高兴知道。我不知道。但是,我无法影响我正在使用的服务器上的 Imagick。而且它不尊重任何 css 样式。
-
您的 Imagemagick 版本是否包含 RSVG 作为委托?您可以查看
convert -version是否列出了 RSVG。如果它与 Imagemagick 一起安装,则 Imagick 应该使用它。但是,您尝试调用的 Imagick 命令是什么?再说一次,也许我误解了你的问题。 -
你的系统上有 Inkscape 吗?如果没有,请尝试添加它,看看是否可以将 SVG 文件转换为光栅格式?
-
@fmw42 我正在使用 php 的 Imagick:secure.php.net/manual/en/class.imagick.php
标签: php css svg imagemagick imagick