我正在使用socket.io在HTML5画布上绘制游戏,当时间结束时将图像发送到node.js服务器。有没有一种方法将画布转换为图像,将图像以base64格式发送到node.js应用程序,最后保存到服务器上?
我正在使用socket.io在HTML5画布上绘制游戏,当时间结束时将图像发送到node.js服务器。有没有一种方法将画布转换为图像,将图像以base64格式发送到node.js应用程序,最后保存到服务器上?
是的,canvas
元素提供了一个名为toDataURL()
的方法。该方法返回一个data:
URL,其中包含指定格式中图像的base64表示形式,默认情况下为PNG格式:
var canvas = document.getElementsByTagName('canvas')[0];
var dataUrl = canvas.toDataURL();
var socket = io.connect('http://localhost');
socket.emit('image', dataUrl);
io.sockets.on('connection', function (socket) {
socket.on('image', function (dataUrl) {
console.log(dataUrl);
});
});
如果需要,您可以剪切前缀data:image/png;base64,
并将内容上传到服务器。