在没有ImageMagick的情况下从SVG XML创建PNG

时间:2013-07-05 11:32:40

标签: php image svg png converter

在服务器端我有一个生成的SVG XML源代码。 这应该更改为图像,以便从SVG XML代码提供PNG(或JPG)下载。 在网上搜索了很长时间,我只使用ImageMagick找到了这个解决方案。 Convert SVG image to PNG with PHP 但我无法访问ImageMagick库,所以我需要一种不同的方法将SVG XML代码转换为位图图像。

有人有想法吗?

Brw:这不是保存svg执行二进制文件或脚本在操作系统上进行转换的选项。

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要使用蜡染库。下载它,放在项目的某个地方。然后在php中使用shell_exec()函数调用batik命令。这将需要几秒钟,并将您的svg转换为png。

示例: -

outputfile ='path where you want to lace png'
$tempSVG_filename = '/var/www' . $baseUrl . '/png/temp.svg';
$tempSVG_handle = fopen($tempSVG_filename, 'w+');
fwrite($tempSVG_handle, $YourSVG);
fclose($tempSVG_handle);
$mimetype = 'image/png';
$width = '6000';

$result = shell_exec('java  -jar /var/www/svgtopng/batik-1.7/batik-rasterizer.jar -m ' . $mimetype . ' -d ' . $outputfile . ' -w ' . $width . ' ' . $tempSVG_filename . ' 2>&1');
 unlink($tempSVG_filename);