H5 Canvas 转换 dataURL/Blob/File对象
创建 Canvas 及 context 上下文对象
var canvas = document.createElement('canvas')
var context = canvas.getContext('2d')
var image = document.getElementById('img')
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)
})
参考