RLH*_*RLH 36 html html5-canvas
我正在开发一个极简主义的图像创建项目,我需要能够在浏览器中创建在服务器上反过来使用的图像.到目前为止,该Canvas.toDataUrl()方法已经满足了我们的需求,但我刚刚学会Canvas.toBlob()了更方便的方法.
似乎该toBlob()方法对规范来说是新的几个月(我找不到任何直接引用它的时间.)
哪些浏览器支持toBlob,更重要的是哪些版本的浏览器包含该方法的集成?此外,是否支持此功能"buggy"或正在开发任何主流浏览器?
UPDATE
我8个月前问了这个问题.我已经提交了我之前提到的项目,等待canvas.toBlob()方法状态的任何更新.从我可以在网上收集的内容来看,实现toBlob()似乎是在某些浏览器中使用.
我再次问,canvas.toBlob()开始集成HTML5画布对象的浏览器中哪种方法无处不在,哪些版本的浏览器是第一个集成这种支持的?
Sim*_*ris 35
toBlob()msToBlob()请注意,此答案最初写于2011年.原始答案/编辑如下.
toBlob()是真正的新的,我不会推荐在消费应用程序中使用它,除非你可以明确地要求他们使用特定的浏览器(或其他控制环境).
toBlob()是在5月12日添加的,并且定义的功能有限.它每晚都不存在Chrome,每晚都是Firefox,也不存在IE9.
值得注意的是,Firefox确实具有功能性的mozGetAsFile
关于将其添加到Chrome,还有任何讨论.
关于Firefox的讨论.在他们尝试实施之前,他们决定等到规范更加明确.
该规范toBlob()非常模糊,许多内部问题仍未得到解决.他们甚至不确定允许典型toBlob()使用的params .
2012年4月10日更新
toBlob仍然没有得到任何支持.它仍然不存在于Chrome Canary(夜间),Firefox Nightly或IE9上.
如果您想在Chrome中观看更新,请点击此处:
http://code.google.com/p/chromium/issues/detail?id=67587
如果您想在Firefox中查看更新,请在此处订阅此错误:
https://bugzilla.mozilla.org/show_bug.cgi?id=648610
更新:截至2016年2月21日.toBlob现在使用chrome 50(目前是金丝雀)
如果您可能需要它,这个js文件在已经不支持它的浏览器中实现toBlob函数:https://github.com/eligrey/canvas-toBlob.js
但是,看起来甚至这个库在所有浏览器中也不起作用
"需要BlobBuilder支持功能,这在所有浏览器中都不存在"
canvas.toBlob()函数有一个很棒的JavaScript实现,还包括本机FireFox mozGetAsFile()函数:
https://github.com/blueimp/JavaScript-Canvas-to-Blob
距离我第一次问这个问题已经过去了快8年了。考虑到我仍然得到了一点点的支持,而且这个问题经常出现在谷歌搜索的顶部,我想我应该更新它的状态Canvas.toBlob(...)和实现。
如下表:
| | Version Support
| Version | for 'Quality'
Browser | Implemented | Parameter
-------------------+-------------+-----------------
Android Webview) | 50 | 50
Chrome (Desktop) | 50 | 50
Chrome (Mobile) | 50 | Unsupported
Edge (Desktop) | Unsupported | Unsupported
Edge (Mobile) | Unsupported | Unsupported
Firefox (Desktop) | 19 | 25
Firefox (Mobile) | 4 | 25
Internet Explorer* | 10 | Unsupported
Opera (Desktop) | 37 | Yes
Opera (Mobile) | 37 | Unsupported
Safari (Desktop) | 11 | Unsupported
Safari (Mobile) | 11 | Unsupported
Samsung Internet | 5.0 | Unsupported
* Internet Explore implements "msToBlob" rather than the "toBlob" function signature.
Run Code Online (Sandbox Code Playgroud)
(来源:https ://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob )