php - 不使用 ImageMagick 从 SVG XML 创建 PNG

标签 php image svg png converter

在服务器端我有一个生成的 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/

相关文章:

php - MYSQL 和 LIMIT 子句

php - 输出两个mysql表的内容

javascript - AngularJS ng :repeat not working

python - 如何将 "textbox"中的文本添加到图像中?

css - 使用css设置原始图片宽度和高度的50%

android - 通过 REST API 提供多种图像分辨率

javascript - 将 svg 附加到背景图像中

PHP:从 MySQL 中的内爆数组中选择一个值

html - 偏移 SVG 填充图案

javascript - 获取 SVG 元素的绝对位置