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