canvas中插入透明图片,getImageData()生成img时,透明如何转换为白色背景的方式。
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); var img=document.getElementById("tulip"); ctx.drawImage(img,0,0,w,h); this.cvsContext=cxt; toWhite(w,h)
通过 getImageData() 复制画布上指定矩形的像素数据,然后通过 putImageData() 将图像数据放回画布:
_toWhite (w,h) { var imageData = this.cvsContext.getImageData(0, 0, w, h) for (var i = 0; i < imageData.data.length; i += 4) { // 当该像素是透明的,则设置成白色 if (imageData.data[i + 3] === 0) { imageData.data[i] = 255 imageData.data[i + 1] = 255 imageData.data[i + 2] = 255 imageData.data[i + 3] = 255 } } this.cvsContext.putImageData(imageData, 0, 0) }