我的应用程序需要对许多大图像进行操作和临时存储。为了有效地管理这一点,我们使用对所有图像的 blob URL 引用。
然而,在操作之后,我们显然需要为从画布中获取的新客户端生成的图像创建一个新的 Blob URL。
Firefox 支持Canvas.toBlob()
完美运行的 native,然后我们从这个 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,但在返回以下 javascript 错误消息的 Chrome 上失败:
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
在创建此 URL 引用时似乎出现了问题,但我不知道如何修复它。
任何帮助将不胜感激。