哪些浏览器(和版本)支持Canvas.toBlob方法?

RLH*_*RLH 36 html html5-canvas

我正在开发一个极简主义的图像创建项目,我需要能够在浏览器中创建在服务器上反过来使用的图像.到目前为止,该Canvas.toDataUrl()方法已经满足了我们的需求,但我刚刚学会Canvas.toBlob()了更方便的方法.

似乎该toBlob()方法对规范来说是新的几个月(我找不到任何直接引用它的时间.)

哪些浏览器支持toBlob,更重要的是哪些版本的浏览器包含该方法的集成?此外,是否支持此功能"buggy"或正在开发任何主流浏览器?

UPDATE

我8个月前问了这个问题.我已经提交了我之前提到的项目,等待canvas.toBlob()方法状态的任何更新.从我可以在网上收集的内容来看,实现toBlob()似乎是在某些浏览器中使用.

我再次问,canvas.toBlob()开始集成HTML5画布对象的浏览器中哪种方法无处不在,哪些版本的浏览器是第一个集成这种支持的?

Sim*_*ris 35

截至2016年2月,这些浏览器支持toBlob()

请注意,此答案最初写于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(目前是金丝雀)

  • 现在可在FF 19中找到 - https://www.mozilla.org/en-US/firefox/19.0/releasenotes/ (3认同)

Sat*_*nix 7

如果您可能需要它,这个js文件在已经不支持它的浏览器中实现toBlob函数:https://github.com/eligrey/canvas-toBlob.js

这里是作者的帖子,这里是扩展的源代码.

但是,看起来甚至这个库在所有浏览器中也不起作用

"需要BlobBuilder支持功能,这在所有浏览器中都不存在"


con*_*ile 7

canvas.toBlob()函数有一个很棒的JavaScript实现,还包括本机FireFox mozGetAsFile()函数:

https://github.com/blueimp/JavaScript-Canvas-to-Blob


RLH*_*RLH 3

距离我第一次问这个问题已经过去了快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 )