在服务器端我有一个生成的 SVG XML 源代码。 这应该更改为图像,以便从 SVG XML 代码提供 PNG(或 JPG)下载。 在网上搜索了很长时间,我只找到了使用 ImageMagick 的解决方案。 Convert SVG image to PNG with PHP 但我无权访问 ImageMagick 库,因此我需要一种不同的方法来将 SVG XML 代码转换为位图图像。
有人有想法吗?
Brw:保存 svg 并在操作系统上执行二进制文件或脚本进行转换不是一个选项。
谢谢。
最佳答案
你需要使用 batik 库。下载它,放在你项目的某个地方。然后在 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);
关于php - 不使用 ImageMagick 从 SVG XML 创建 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17487912/