如何从位图中去除白色背景颜色

4

我想要在位图中去除白色背景颜色。

Bitmap capcha = new Bitmap("C:/image.jpg");
pictureBox1.Image = capcha;

但我希望在我的pictureBox1中只显示图像,而不显示背景中存在的白色


你知道32位PNG支持透明背景,对吧? - spender
1
谢谢您的回答,但我处理的是jpg而不是png :) - Ti Amo Laky
2
@spender 是正确的,使用 .PNG 而不是 .JPG,请参考这里 - Pyromancer
1个回答

11

尝试像这样在验证码中设置透明度:

Bitmap capcha = new Bitmap(@"C:/image.jpg");
capcha.MakeTransparent(Color.White);
pictureBox1.Image = capcha;

我希望这是你需要的。


这会在 JPEG 格式上产生奇怪的结果,因为它充满了压缩伪影,而不是纯白色。 - Nyerguds
这里的问题在于“白色背景”;jpeg 图像上的背景绝不仅仅是“白色”,但您可以假设他们仍然希望将其全部删除。 - Nyerguds
显然,您可以创建没有中间像素的 .jpg 图像。您只需要调整图像的质量即可(简单示例 https://imgur.com/X4cQ1aZ)。 - Kamil Nowak
Gimp的“按颜色选择”功能设置为零容差与您不符。即使在100%质量下,仍然有很多流氓像素。https://i.imgur.com/f45Sgeg.png - Nyerguds
1
哦,我并不是要批评;我只是在说使用JPEG格式会使这个操作变得更加复杂。 - Nyerguds
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接