最開始的需求是 多張圖拼成一張圖 並且長按儲存
最開始的愚見:
因為要等全部的圖片渲染完成在區生產canvas 我就只在最大的呢張圖片上加了onload事件
這樣圖片載入慢 也能最後執行生成canvas
今天看了一個小想法,發現自己真蠢:
一張張遞迴渲染到指定位置不就好了
唉 果真還是垃圾寶寶一個
draw(){
let data = ['img_url_1','img_url_2','img_url_3','img_url_4','img_url_5']
//陣列存放url
let canvas = document.createElement('canvas')
// 建立canvas 畫板
let context = canvas.getContext('2d')
canvas.width=290;
canvas.height=290;
context.rect(0,0,canvas.width,canvas.height)
//繪製空白矩形區域
function drawing(n){
if(m<len){
let img = new Image;
//img.crossOrigin = 'Anonymous'; //解決跨域
img.src=data[n];
img.onload=function(){
//使用遞迴 把每一張圖一一按照位置渲染上去
ctx.drawImage(img,0,0,290,290);
drawing(n+1);//遞迴
}
}else{
//儲存生成作品圖片
base64.push(c.toDataURL("image/jpeg",0.8));
//alert(JSON.stringify(base64));
fn();
}
drawing(0);
}
}
複製程式碼