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

The*_*ndr 5 php svg png image converter

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

有人有想法吗?

Brw:不能选择在操作系统上保存svg执行二进制文件或脚本进行转换.

谢谢.

Ras*_*ash 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);
Run Code Online (Sandbox Code Playgroud)