我有一个页面,用户可以在其中创建自己的SVG图像。现在我想在服务器(php)上访问这些图像,以便将它们发送到电子邮件地址。
使用这些instructions我能够将SVG转换为画布,然后将画布转换为jpeg / png。我不再担心SVG树,因为它不再需要编辑,因此将其转换为正常图像(我假设这将更容易处理,最终我想将该图像作为附件发送电子邮件)。
这样做最有效的方法是什么?是否可以将转换后的jpeg / png发布到服务器?谢谢你们,有点迷失在这里。
答案 0 :(得分:4)
经过更多的阅读后,我设法找到了一个相当简单的解决方案,万一有人在这里有类似的问题:
使用canvg将SVG转换为普通画布后,您可以使用canvas.toDataURL()方法,然后您需要执行的操作是POST生成的URL并在服务器上对其进行解码。我为此使用了隐藏的输入字段。注意不要使用JQuery来获取画布,因为JQuery不返回实际画布而是返回JQuery对象。
var canvas = document.getElementById('canvas');
var dataUrl = canvas.toDataURL();
$('#hiddenInput').val(dataUrl);
在服务器端:
$encodeData = $_POST['dataUrl'];
$encodeData = substr($encodeData, strpos($encodeData, ',') + 1); //strip the URL of its headers
$decodeData = base64_decode($encodeData);
$handle = fopen('test.png', 'x+');
fwrite($handle, $decodeData);
fclose($handle);
SVG现在作为png。在服务器上。