2016-12-07 241 views
1

我已经经历了很多类似的问题,我无法找到我的问题的答案。将svg转换为png会生成空白图像

我有一个svg图像。我试图将它转换成PNG图像。

我一直在使用300dpi图像作为background svg image.Now我已将它更改为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

回答

0

综观Imagick::readImageBlob

文档从一个二进制串读取图像

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

从文件名中读取图像

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

或构造Imagick::__construct

Imagick::__construct (mixed $files) 

为指定图像的Imagick实例或一组图像, 。

$im = new Imagick($svg); 
+0

仍然无法正常工作。 – NID