php - 为什么 imagick SVG 到 PNG 转换如此困惑?

标签 php svg imagemagick png

我正在尝试使用 imagick 将简单的 SVG 图标转换为 PNG。

这是我得到的:

SVG icon <<<之前| >>> Converted PNG之后

怎么这么乱?我制作的很多 svg 图标最终都像这样搞砸了。我怎样才能阻止这种情况发生?

PHP 脚本是:

$svg = file_get_contents($svg_icon_path);

$im = new Imagick();

$im->setBackgroundColor(new ImagickPixel('transparent'));

$im->readImageBlob($svg);

$im->setImageFormat("png24");

$im->writeImage('converted_icon.png');

我正在从 Illustrator CC 导出 SVG 图标

最佳答案

我们在这里看到很多关于 ImageMagick 的 SVG 支持的提示。它用于 SVG 转换的库 (librsvg) 似乎有些错误。您可能需要稍微调整您的 SVG 文件才能解决 rsvg 不喜欢的问题。或者,您可能需要考虑切换到更可靠的 SVG 光栅器,例如 Batik。 http://xmlgraphics.apache.org/batik/

关于php - 为什么 imagick SVG 到 PNG 转换如此困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35189222/

相关文章:

linux - ImageMagick -liquid-rescale 选项错误

c - 将 ImageMagick lib 的 ImageWand 组件与 CMake 结合使用

PHP - 优化加载过程

css - 转换复杂 SVG 组中嵌套元素的原点

javascript - 谷歌折线图中的 svg> 和 <rect> 内联样式错误

javascript - textPath 上的 SVG 圆圈文本(居中对齐)

java - 使用 Java ImageIO 或 Imagemagick 将 DCI-P3 色彩空间转换为 sRGB

php - 同时插入,有可能出现这种情况吗?

php - 在表单提交时自动打印页面

php - 用于检测 Internet Explorer 11 的正则表达式