canvas元素将在即将面世的Chrome 50上进行升级:它现在支持toBlob()方法。
对于任何在客户端生成图像, 将其上传到服务器或存储在IndexedDB中以供将来使用的人来说, 这都是一个好消息。
【Canvas.toBlob(Google Chrome 50和Firefox中Canvas的新功能)】使用toBlob()是一个很好的升级, 因为你现在可以直接使用编码的二进制数据, 而不是操作从toDataURL()获得的base64编码的字符串。它比数据URI更小, 并且”
倾向于适应更多用例”
。
你可以使用createImageBitmap API将绘图事件Blob绘制到另一个画布上下文, Chrome 50也将提供该API。
如何使用toBlob方法是异步的, 因此需要一个函数作为第一个参数。此函数接收blob元素作为第一个参数:
<
canvas id="canvas"
width="200" height="200" style="border:1px solid #000000;
">
<
input type="button" value="http://www.srcmini.com/Send Image to server" id="send"/>
<
script>
function imageToServer(canvas, url) {function onBlob (blob) {var request = new XMLHttpRequest();
request.open('POST', url);
request.onload = function (evt) {// Blob sent to server.}request.send(blob);
}canvas.toBlob(onBlob);
}window.onload = function(){
document.getElementById("send").addEventListener("click", function(){
var canvas = document.getElementById("canvas");
imageToServer(canvas, "/a-service-to-process-the-image");
}, false);
};
<
/script>
先前的代码将生成图像Blob, 该图像将被发送到将处理该Blob的url服务。
重要提示:你可以使用Chrome Canary测试此功能, 因为最新的Chrome版本是49, 直到该日期为止, 并且此功能仅适用于Chrome 50。
推荐阅读
- 如何在Laravel中使用TCPDF从HTML生成PDF
- 修复Laravel 5.4中的”指定密钥太长错误”异常
- React国际化(i18n)入门
- 如何在React JSX中发表评论
- 处理XP下无法访问Windows7文件
- 处理Windows xp无法安装字体
- 教你进入WindowsXP系统后假死机的处理办法
- 分享运用Windows XP组策略局限访问电脑磁盘的最好办法
- 电脑在Windows XP系统下完成共享上网办法