我在HTML5画布中使用socket.io绘图编写游戏,当时间结束时,将图像发送到node.js服务器。有没有办法在图像中转换该画布,将base64中的图像发送到node.js应用程序,最后将其保存到服务器中?
答案 0 :(得分:2)
是的,canvas
元素提供了一个名为toDataURL()
的方法。此方法返回data:
URL,其中包含指定格式的图像的base64表示,或默认情况下为PNG:
var canvas = document.getElementsByTagName('canvas')[0];
var dataUrl = canvas.toDataURL();
假设您正在使用socket.io,您可以通过发出事件在套接字上发送此数据URI:
var socket = io.connect('http://localhost');
socket.emit('image', dataUrl);
在Node端,您可以在套接字上侦听此事件以检索图像:
io.sockets.on('connection', function (socket) {
socket.on('image', function (dataUrl) {
console.log(dataUrl);
});
});
然后,您可以根据需要修剪前缀data:image/png;base64,
并将内容上传到服务器。