有什么方法可以将HTML Canvas的内容读取为二进制数据?目前,我具有以下HTML来显示输入文件及其下方的画布:<p><button id="myButton" type="button">Get Image Content</button></p><p>Input:<input id="fileInput" type="file"/></p><p>Canvas<canvas id="myCanvas" width="578" height="200"/></p>然后,我已经设置了输入文件以正确设置画布,这可以正常工作:$('#fileInput').on('change', function() { $.each(this.files, function() { var image = new Image(); image.src = window.URL.createObjectURL(this); image.onload = function() { $("canvas").drawImage({ source: image, x: 50, y: 50, width: 100, fromCenter: false }); }; });});现在,单击按钮时,我需要从Canvas中获取二进制数据(Base64编码),以便将数据推送到服务器...最终结果是,我需要为用户提供选择文件,裁剪/调整大小,然后单击按钮的功能,此时已编辑的图像将被上传到服务器(我无法在服务器端进行操作)由于服务器端的限制,无法进行裁剪/调整大小...)任何帮助将是巨大的!干杯
2 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
的canvas元件提供一个toDataURL返回的方法data:,其包括在给定的格式的base64编码的图像数据的URL。例如:
var jpegUrl = canvas.toDataURL("image/jpeg");
var pngUrl = canvas.toDataURL(); // PNG is the default
尽管返回值不仅是base64编码的二进制数据,但是修剪方案和文件类型以仅获取所需数据是一件简单的事情。
toDataURL如果浏览器认为您已将从其他来源加载的任何数据绘制到画布上,则该方法将失败,因此,仅当您的图像文件与脚本执行此操作的HTML页面从同一服务器加载时,此方法才有效操作。
有关更多信息,请参见API 上的MDN文档canvas,其中包括的详细信息toDataURL,以及有关data:URI方案的Wikipedia文章,其中包括有关从此调用中收到的URI格式的详细信息。
添加回答
举报
0/150
提交
取消