在服务器端我有一个生成的SVG XML源代码。 这应该更改为图像,以便从SVG XML代码提供PNG(或JPG)下载。 在网上搜索了很长时间,我只使用ImageMagick找到了这个解决方案。 Convert SVG image to PNG with PHP 但我无法访问ImageMagick库,所以我需要一种不同的方法将SVG XML代码转换为位图图像。
有人有想法吗?
Brw:这不是保存svg执行二进制文件或脚本在操作系统上进行转换的选项。
谢谢。
答案 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);