阅读以下答案: 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生成以逐步查看正在发生的事情。
提前致谢。