将svg转换为png会生成空白图像

时间:2016-12-07 13:29:43

标签: php image-processing svg png imagick

我经历了很多类似的问题。我找不到问题的答案。

我有svg张图片。我试图将其转换为png图像。

我一直使用300dpi图像作为svg image的background。现在我已将其更改为600dpi。之后imagick返回一个空的png图像。

            $svg=path to svg;               
            $im = new Imagick();
            $im->readImageBlob($svg);
            $im->setImageFormat("png32");
            $im->setImageCompressionQuality(100);
            $im->resizeImage(720, 445, imagick::FILTER_LANCZOS, 1);
            $base64=base64_encode($im);
            $im->clear();
            $im->destroy();
            return 'data:image/jpg;base64,' . $base64; //returns blank png

我在这里缺少什么?我是否必须包含任何库?

  

PHP VERSION:7

     

IMAGICK VERSION:ImageMagick 6.8.9-9

1 个答案:

答案 0 :(得分:0)

查看Imagick::readImageBlob

的文档
  

从二进制字符串中读取图像

这似乎不是从文件路径读取的正确方法。 您应该使用Imagick::readImage

  

从文件名中读取图像

$im = new Imagick();
$im->readImage($svg);

或构造函数Imagick::__construct

Imagick::__construct ( mixed $files )  
     

为指定的图像或图像集创建一个Imagick实例。

$im = new Imagick($svg);
相关问题