前端學習筆記------多張圖片生成canvas思路.md

MrZss發表於2018-12-29

最開始的需求是 多張圖拼成一張圖 並且長按儲存

最開始的愚見:

​ 因為要等全部的圖片渲染完成在區生產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);
	}
}
複製程式碼

相關文章