我有一些 html 图像有白色背景。我需要删除白色背景。我想我可以使所有白色像素透明,但我不知道该怎么做。我只想使用 html/javascript。
这是如何做到的..
function white2transparent(img)
{
var c = document.createElement('canvas');
var w = img.width, h = img.height;
c.width = w;
c.height = h;
var ctx = c.getContext('2d');
ctx.drawImage(img, 0, 0, w, h);
var imageData = ctx.getImageData(0,0, w, h);
var pixel = imageData.data;
var r=0, g=1, b=2,a=3;
for (var p = 0; p<pixel.length; p+=4)
{
if (
pixel[p+r] == 255 &&
pixel[p+g] == 255 &&
pixel[p+b] == 255) // if white then change alpha to 0
{pixel[p+a] = 0;}
}
ctx.putImageData(imageData,0,0);
return c.toDataURL('image/png');
}
并使用它设置src
图像的值为此方法的返回值。
var someimage = document.getElementById('imageid');
someimage.src = white2transparent(someimage);
http://jsfiddle.net/gaby/UuCys/ http://jsfiddle.net/gaby/UuCys/
为了使此代码正常工作,图像必须来自与代码相同的域(出于安全原因).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)