html - 是否可以重用从 HTMLCanvasElement.toDataURL() 或 canvas.toBlob() 返回的 DOMString?
问题描述
我正在设置一个图像裁剪器,它会给我宽度和高度,裁剪细节的 X 和 Y。使用它我正在创建预览图像(使用画布),但是是否可以存储从其他设备和浏览器返回的数据HTMLCanvasElement.toDataURL()
或canvas.toBlob()
在其他设备和浏览器中重复使用?
请参阅下面的链接(它使用canvas.toBlob()
方法)
https://codesandbox.io/s/72py4jlll6
解决方案
您可以尝试使用这行代码:
if (!HTMLCanvasElement.prototype.toBlob) {
Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
value: function (callback, type, quality) {
var binStr = atob( this.toDataURL(type, quality).split(',')[1] ),
len = binStr.length,
arr = new Uint8Array(len);
for (var i=0; i<len; i++ ) {
arr[i] = binStr.charCodeAt(i);
}
callback( new Blob( [arr], {type: type || 'image/png'} ) );
}
});
}
只需更改您的代码。请尽快LMK。
推荐阅读
- rest - 如何使用 Create User API 在 Oracle 云应用程序中创建用户时传递角色信息
- c++ - 在 C++ 编程中使用“endl”
- emacs - 如何从 MELPA 手动安装软件包?
- postgresql-13 - 将 postgres pod 版本 12 更新到 13 时出现问题
- material-ui - Material-UI XGrid 多选复选框“选择所有行复选框”以仅选择过滤的行?
- azure - 多个 Azure 目录
- excel - 将word文本框值复制到excel单元格
- javascript - 从javascript中的数组中删除空数组对象并做出反应
- android - 为结果启动活动 - 从 MVVM 架构中的视图模型类
- xamarin - 如何重写后退按钮的操作