HTML5 - H5 Canvas 转换 dataURL / Blob / File 对象

发布于 2024-07-07 11:44:24 字数 1177 浏览 28 评论 0

创建 Canvas 及 context 上下文对象

// 创建  canvas 与 context 对象
var canvas = document.createElement('canvas')
var context = canvas.getContext('2d') // canvas 对图片进行缩放
var image = document.getElementById('img')

// 设置 canvas
var w = image.width
var h = image.height
canvas.width = w
canvas.height = h

// 清除画布
context.clearRect(0, 0, w, h)

// 图片绘
context.drawImage(image, 0, 0, w, h)

读取 dataUrl, blob ,并互相转换,转换成 dataUrl, blob, File 格式

function dataURLtoBlob(dataurl) {
  var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
  while(n--){
    u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], {type:mime});
}

function dataURLtoFile(dataurl, filename) {
  var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
  while(n--){
    u8arr[n] = bstr.charCodeAt(n);
  }
  return new File([u8arr], filename, {type:mime});
}

let dataUrl = canvas.toDataURL()

let blob = canvas.toBlob(blob => {
  console.log('blob: ' + blob)
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

文章
评论
28 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文