我经历了很多类似的问题。我找不到问题的答案。
我有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
答案 0 :(得分:0)
从二进制字符串中读取图像
这似乎不是从文件路径读取的正确方法。
您应该使用Imagick::readImage
从文件名中读取图像
$im = new Imagick();
$im->readImage($svg);
或构造函数Imagick::__construct
Imagick::__construct ( mixed $files )
为指定的图像或图像集创建一个Imagick实例。
$im = new Imagick($svg);