用于将svg转换为png的php脚本在服务器上失败但在实验室中工作正常

时间:2018-03-08 03:53:27

标签: php svg png imagick

阅读以下答案: Convert SVG image to PNG with PHP Convert SVG to PNG image Convert a bunch of images from svg to png 我终于得到了一个正常工作的代码,在我的实验室工作正常但是当我将它上传到我的服务器时,脚本失败了。

我使用的功能如下:

function svg2png($svg, $nomarchpng, $parametros = null) {
    $im = new Imagick();
    $im->readImageBlob($svg);
    $im->setImageFormat("png32");
    if (isset($parametros->ancho) && isset($parametros->alto))
        $im->resizeImage( $parametros->ancho
                        , $parametros->alto
                        , imagick::FILTER_LANCZOS
                        , 1);
    $im->writeImage($nomarchpng);
    $im->clear();
    $im->destroy();
}

在我的实验室,使用php 5.6.33和Linux的Linux Mageia机器 imagick模块版本3.4.1 想象类Imagick,ImagickDraw,ImagickPixel,ImagickPixelIterator,ImagickKernel Imagick用ImageMagick版本编译ImageMagick 6.9.8-7 Q16 x86_64 2017-05-27

在那个环境中,生成的png看起来很不错。

但是当我将该脚本上传到我的服务器时,生成的png是一个空白的png,具有正确的尺寸和白色背景。

服务器是FreeBSD,PHP版本5.6.33 imagick模块版本3.4.3 想象类Imagick,ImagickDraw,ImagickPixel,ImagickPixelIterator,ImagickKernel Imagick使用ImageMagick版本编译ImageMagick 6.9.9-28 Q16 amd64 2018-02-23

我认为问题可能与字符集有关,然后我用ini_set强迫php(' default_charset',' utf8');但png仍然是blanck。

你能告诉我一个线索......也许是如何调试png生成以逐步查看正在发生的事情。

提前致谢。

0 个答案:

没有答案