用Imagick将SVG转换为PNG会弄乱文本

时间:2015-07-21 08:25:15

标签: svg png imagick

使用以下代码将SVG转换为PNG文件时,文本看起来很糟糕。图像没有缩放,所以我不知道为什么文本的质量如此糟糕。

此外,虽然很难看到,但PNG中的文本似乎是一些serif字体,而SVG中的文本是sans-serif。

编辑:我刚注意到特殊的字符似乎在“Kreuzworträtsel”这个词中搞砸了。

我该怎么做才能解决问题?

$image = new Imagick();

$image->setResolution(288, 288);
$image->readImageBlob($svg);

$image->setImageformat('png24');

header('Content-Type: image/png');
echo $image->getImageBlob();

这是SVG:https://www.dropbox.com/s/22hewf59cmcv92k/SVG.svg?dl=0

这是已转换的PNG:https://www.dropbox.com/s/c5mihvmmlyu9kx8/PNG.png?dl=0
在缩小版本中很难看到质量问题,请查看上面的链接。

Imagick::getVersion()返回ImageMagick 6.8.9-7 Q16 x86_64 2015-04-09 http://www.imagemagick.org

2 个答案:

答案 0 :(得分:0)

你几乎肯定会使用一个有错误的转换器。

使用您的代码和源图像我使用Ghostscript版本8.70将图像转换为ImageMagick将用于实际转换的“解码委托”。

您应该尝试升级实际使用的任何委托。如果您使用的是Ghostscript,我建议尽可能升级到9.x版本,因为它还有许多其他错误修复。

答案 1 :(得分:0)

我认为,SVG仅指Verdana字体。使用以下方法检查您的ImageMagick系统是否知道该字体:

identify -list font | more

identify -list font | grep -i verdana

如果ImageMagick不知道该字体,请参阅我的其他帖子here