Javascript 使画布透明

Javascript 使画布透明,javascript,html5-canvas,Javascript,Html5 Canvas,我有一张有cnv标识的画布 <canvas id="cnv"></canvas> <img id="img" src=""></img> 完成后,我将映像保存在物理磁盘中。下面是结果映像: 它的背景是白色的,不透明。我想使图像除了绘制到其中的线条之外是透明的。我将如何做到这一点?您可以使用context.getImageData获取绘制到画布上的图像的rgba像素数据。然后去掉白色的值,只留下黑线 以下是注释代码和演示: //将图像加载到新的图

我有一张有cnv标识的画布

<canvas id="cnv"></canvas>
<img id="img" src=""></img>
完成后,我将映像保存在物理磁盘中。下面是结果映像:

它的背景是白色的,不透明。我想使图像除了绘制到其中的线条之外是透明的。我将如何做到这一点?

您可以使用context.getImageData获取绘制到画布上的图像的rgba像素数据。然后去掉白色的值,只留下黑线

以下是注释代码和演示:

//将图像加载到新的图像对象中 var img=新图像; img.crossOrigin='anonymous'; img.onload=启动; img.src=https://dl.dropboxusercontent.com/u/139992952/bk.png; 功能启动{ //创建画布元素 var canvas=document.createElementcanvas; var ctx=canvas.getContext2d; //将画布调整为图像大小 canvas.width=img.width; canvas.height=img.height; //将图像绘制到画布上 ctx.drawImageimg,0,0; //获取画布的像素数据 var imgData=ctx.getImageData0,0,canvas.width,canvas.height; var数据=imgData.data; //使任何纯白色像素透明:数据[i+3]=0 //注:如有必要,稍微降低阈值以捕捉白色 var阈值=255;
forvar i=0;i请显示用于绘图的代码。默认情况下,画布是透明的。。
var a = document.getElementById("img");
a.src = document.getElementById("cnv").toDataURL();