javascript – canvas ImageData删除白色像素

我有一些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,w,h);
    var imageData = ctx.getimageData(0,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);

    return c.toDataURL('image/png');
}

并使用它将图像的src设置为此方法的返回值.

var someimage = document.getElementById('imageid');
someimage.src = white2transparent(someimage);

http://jsfiddle.net/gaby/UuCys/

要使此代码起作用,映像必须来自与代码相同的域(出于安全原因).

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...