我正在尝试通过 Imagick 将 svg 图像转换为 png。我“成功”地做到了,图像被转换了,但它们似乎被不同的颜色破坏了。这是我的代码示例和转换前后的图像示例。
$image = new \Imagick();
$svgImage = file_get_contents($tmpFilePath);
$image->setImageBackgroundColor(new \ImagickPixel('transparent'));
$image->readImageBlob($svgImage);
$image->setImageFormat("png32");
$pngtmpFileName = pathinfo($tmpFilePath, PATHINFO_FILENAME).'.png';
$pngtmpFilePath = $this->_directory->getRelativePath($this->downloadDir . '/' .
$image->writeImage($pngtmpFilePath);
header('Content-type: image/png');
$image->clear();
$image->destroy();
相同的代码示例遍布互联网,看起来这是使用 php 将 svg 转换为 png 的唯一方法,但它不起作用。
- 转换前后的示例图像:
- 转换前后的示例:
有任何想法吗?谢谢!