首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

代码改变图片背景色,该如何解决

2013-01-08 
代码改变图片背景色我有一张证件照的图片想用代码实现将背景由白色改为红色或者黄色,不用其他的程序这个要

代码改变图片背景色
我有一张证件照的图片想用代码实现将背景由白色改为红色或者黄色,不用其他的程序这个要怎么弄呀
[解决办法]
假设背景色为白色,改为黑色!!

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    for(int y=0; y<Image1->Height; y++)
    {
      for(int x=0; x<Image1->Width; x++)
        if(Image1->Canvas->Pixels[x][y]==clWhite)
        {
          Image1->Canvas->Pixels[x][y]=clBlack;
        }

    }
}

[解决办法]
如果是照片的话,不能像楼上那样简单转换,要识别的是一组相近的颜色,识别时查找RGB各在一定范围内的点,如果是白色就可以选择RGB都大于一个值,然后转换,为了防止误转换(有时人身上也有白色),可以从边缘选择一个点,只转换和这一点直接连通的点。
[解决办法]
将图像中的白色色素全部替换成另外的颜色,并不是一个好办法。这样会导致面部等颜色比较浅的部分受到影响。再说回来了,即使是替换像素,也应该用Bitmap的ScanLine,因为Pixels的效率太低了。
[解决办法]
我对图像处理不精通。阿发伯对这个有研究,你给他发个短消息看看,ID是mazefa

热点排行