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

Html 哪些浏览器(和版本)支持Canvas.toBlob方法?,html,html5-canvas,Html,Html5 Canvas,我正在从事一个极简图像创建项目,我需要有能力在浏览器中创建图像,然后在服务器上使用。到目前为止,Canvas.toDataUrl()方法已经满足了我们的需要,但我刚刚了解了Canvas.toBlob()方法,它会更方便 几个月前,toBlob()方法对规范来说似乎是新的(我找不到任何直接的参考,它是什么时候添加的) 哪些浏览器支持toBlob,更重要的是,哪些版本的浏览器包含该方法的集成?此外,对该功能的支持是“错误”还是正在为任何主要浏览器开发中 更新 差不多8年前我问过这个问题。我已经将前面

我正在从事一个极简图像创建项目,我需要有能力在浏览器中创建图像,然后在服务器上使用。到目前为止,
Canvas.toDataUrl()
方法已经满足了我们的需要,但我刚刚了解了
Canvas.toBlob()
方法,它会更方便

几个月前,
toBlob()
方法对规范来说似乎是新的(我找不到任何直接的参考,它是什么时候添加的)

哪些浏览器支持toBlob,更重要的是,哪些版本的浏览器包含该方法的集成?此外,对该功能的支持是“错误”还是正在为任何主要浏览器开发中

更新

差不多8年前我问过这个问题。我已经将前面提到的项目放在表格中,等待
canvas.toBlob()
方法状态的任何更新。从我在web上收集到的信息来看,
toBlob()
的实现似乎正在一些浏览器中慢慢使用

我再次询问,
canvas.toBlob()
方法在已经开始集成HTML5 canvas对象的浏览器中有多普遍?这些浏览器的哪些版本是第一个集成此支持的?

截至2016年2月为止,这些浏览器支持
toBlob()
  • IE10作为前缀
注意:这个答案最初是在2011年写的。原始答案/编辑如下


toBlob()
真正的新功能,我不建议在消费者应用程序中使用它,除非您可以明确要求他们使用特定的浏览器(或控制环境)

已在上添加了
toBlob()
,并且具有定义的有限功能。它不存在于Chrome nightly、firefox nightly和IE9中

值得注意的是,Firefox确实具有功能性

甚至还没有

他们的讨论决定等到规范更加明确后再尝试实现

toBlob()
的规范非常模糊,许多内部问题尚未解决。他们甚至还不确定典型的
toBlob()
使用什么参数


2012年4月10日更新

托布洛布仍然得不到支持。它仍然不存在于Chrome Canary(每晚)、Firefox夜间和IE9上

如果您想在Chrome star中查看更新,请执行以下操作:

如果您想在Firefox中查看更新,请在此处订阅此错误:


更新:截至2016年2月21日。toBlob现在在chrome 50(当前为金丝雀)中工作。

很遗憾,这项功能没有进一步发展,但很高兴知道它的状态(thx Simon)


在此期间,通过消除base64编码的dataUri字符串的膨胀,这为实现二进制上传的网络效率提供了一个很好的解决方案。显然,它只受最新浏览器的支持,但如果您正在编写扩展或准备在前沿浏览器上建立依赖关系,这可能是一个不错的选择。

如果您可能需要它,此js文件将在不支持它的浏览器中实现toBlob函数:

这里是作者和扩展的源代码

然而,看起来即使是这个库也不能在所有浏览器中工作,因为它

“需要BlobBuilder支持才能正常工作,但这在所有应用程序中都不存在 浏览器“


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


自从我第一次问这个问题以来,已经将近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.

(来源:)

啊,谢谢你的澄清。这个项目的性质是,我可以要求一个特定的浏览器,但我不想限制他们太多。这是9个月前的原始答案。我不介意把赏金授予这个人,但我希望在这段时间内有一个更好的解决方案。如果悬赏时间到期(40分钟后),Simon将再次获得答案检查,并且悬赏。这在FF 19-FYI中提供,我在第一次问这个问题后就接受了Simon Sarris的答案。我在这个问题上加了一个悬赏,因为我认为自2011年7月以来,现在有了一个更好的答案。bI重新提出了这个问题,因为我不得不暂停这个项目一段时间,考虑到大多数现代浏览器几乎每隔一周发布一次更新,这个Javascript功能的状态肯定与2011年7月有所不同。请看,你应该提到它是一个多填充