1

我正在尝试通过 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 的唯一方法,但它不起作用。

  1. 转换前后的示例图像:

截图 svg 图片

转换后的png图像

  1. 转换前后的示例:

截图 svg 图片 2

转换为 png 2 后

有任何想法吗?谢谢!

4

0 回答 0