【问题标题】:Converting svg to png generates blank image将 svg 转换为 png 生成空白图像
【发布时间】:2017-04-22 11:23:11
【问题描述】:

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

我有一张svg 图片。我正在尝试将其转换为 png 图像。

我一直使用 300dpi 图像作为 svg 图像的 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 版本:7

IMAGICK 版本:ImageMagick 6.8.9-9

【问题讨论】:

    标签: php image-processing svg png imagick


    【解决方案1】:

    Imagick::readImageBlob的文档

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

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

    从文件名读取图像

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

    或构造函数Imagick::__construct

    Imagick::__construct ( mixed $files )  
    

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

    $im = new Imagick($svg);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 2022-07-05
      • 2015-08-08
      • 2011-06-16
      • 2017-12-21
      相关资源
      最近更新 更多