主要用到的方法
- ctx.drawimage()
- ctx.getImageData()
- ctx.putImageData()
- canvas.toDataURL()
方法详解:
有待更新...
代码
let canvas = document.createElement('canvas');
let ctx = canvas.getContext('2d');
function getImage() {
return new Promise((resolve, reject) => {
let img = new Image()
img.crossOrigin = '*';
img.src = 'https://ks3-cn-beijing.ksyun.com/labelmark/fe/000006d08fd3cd8805f173e3e5fbcf96.jpg'
img.onload = function () {
resolve(img)
}
})
}
async function drawImage(){
let img =await getImage();
ctx.drawImage(img,0,0);
let data = ctx.getImageData(0,0,200,200)
return data;
}
async function MakeImg(){
let data = await drawImage();
let canvas = document.createElement('canvas');
let ctx = canvas.getContext('2d');
ctx.putImageData(data,0,0);
let dataUrl = canvas.toDataURL('image/png');
console.log(dataUrl)
}
MakeImg()
实现思路
- 加载图片
- 创建画布
- 用drawImage()将图片放入canvas中
- 通过getImageData()拿去需要的数据
- 创建一个新的画布
- 将4中获取到的数据putImageData()到新的画布
- 用toDataUrl()生成图片
注意事项
- 操作图片数据,图片链接后端必须设置头:access-control-allow-orign:'*'
- 前端加载图片需要设置crossOrigin = '*'