图片转base64
blobToBase64 (path, quality) {
// 此处为压缩图片方法
const image = new Image() // 新建一个img标签(还没嵌入DOM节点)
image.src = path
image.onload = () => {
const canvas = document.createElement('canvas')
const context = canvas.getContext('2d')
const x = image.width / quality // 压缩倍数
const imageWidth = image.width / x // 压缩后图片的大小
const imageHeight = image.height / x
canvas.width = imageWidth
canvas.height = imageHeight
context.drawImage(image, 0, 0, imageWidth, imageHeight)
let imgUrl = canvas.toDataURL('image/jpeg') //图片的base64地址
}
}
视频转base64
fetch(blobUrL).then(data=>{
const blob = data.blob()
return blob;
}).then(blob=>{
let reader = new window.FileReader()
reader.onloadend = function() {
const data = reader.result
console.log('视频base64地址:',data)
}
reader.readAsDataURL(blob)
})
错误代码:
base(blobUrl){
const blob = blobUrl.blob()
let reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function() {
data = reader.result;
console.log(data);
}
}
原因:blob是个字符串,直接运行以下代码会报跨域