似乎(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似乎能够理解样式属性。
发布于 2018-03-28 17:28:05
似乎是librsvg中的一个bug。如果我将type="text/css"添加到<style>标记中,它就像一个护身符。
发布于 2018-03-29 03:30:49
我将您的代码保存为test.svg文件,并使用Imagemagick 6.9.9.30 Q16 Mac和RSVG (librsvg @2.42.2_0),它工作得很好。我看到一个红色的小方块:
convert test.svg test.png

您的RSVG版本是什么。
convert -list format会告诉你的。
也许你需要升级RSVG或者你的Imagemagick版本。
发布于 2020-07-30 23:02:40
我最近遇到了同样的问题,因为我在本地主机上工作,而不是在服务器上,因为缺少一个包。我安装了inkscape和Imagick的SVG生成(实际上我使用的是Intervention,驱动程序设置为imagick)
apt-get install inkscape编辑:一开始,SVG生成根本不起作用,我遵循了这个线程Imagick SVG to JPG error no decode delegate
然而,在那之后,SVG生成工作了,不幸的是,从SVG渲染的PNG是灰度的。我认为SVG中的样式丢失了,这个帖子帮助了我:how to resize an SVG with Imagick/ImageMagick
https://stackoverflow.com/questions/49520202
复制相似问题