我的应用程序需要操作和临时存储许多大图像。为了有效地管理这个,我们使用blob URL引用所有图像。
然而,在操作之后,我们显然需要为从客户端生成的图像创建一个新的Blob URL,这是从画布中获取的。
Firefox支持原生Canvas.toBlob()
,它完美无缺,然后我们从这个blob创建一个新的blob url引用,如下所示:
var url = window.URL || window.webkitURL;
var bloburl = url.createObjectURL(blob);
对于所有浏览器,我们使用以下polyfill:
https://github.com/blueimp/JavaScript-Canvas-to-Blob
这适用于IE和Opera但在Chrome上失败,其中返回以下javascript错误消息:
Uncaught Error: Syntax error, unrecognized expression: blob:http%3A//www.exampledomain.com/d4693a94-ebf9-4608-b721-1cee1a04fd00
当我console.log()
bloburl变量时,我得到以下内容:
在Firefox / IE / Opera中:
blob:d4693a94-ebf9-4608-b721-1cee1a04fd00
在Chrome中:
blob:http%3A//www.exampledomain.com/d4693a94-ebf9-4608-b721-1cee1a04fd00
在创建此网址引用时似乎出现了问题,但我不知道如何修复它。
非常感谢任何帮助。