gpt4 book ai didi

c# - 去除图像透明度

转载 作者:太空狗 更新时间:2023-10-30 01:03:40 24 4
gpt4 key购买 nike

我在大学里研究机器学习问题,我的第一份工作是将图像转换成黑白图像。

问题是我的图片有透明度,我不知道如何去除它。

我正在尝试:

public static Bitmap RemoveTransparency (Bitmap src)
{
Bitmap target = new Bitmap (src.Size.Width, src.Size.Height);
Graphics g = Graphics.FromImage (target);

g.Clear (Color.White);
g.DrawImage (src, 0, 0);

return target;
}

输入图像的示例:

My captcha image

“RemoveTransparency”调用后的输出图像示例:

Output image

有人知道这是怎么回事吗?似乎背景和字母具有相同的颜色...如果我着色为白色,我的背景是黑色?

谢谢!

最佳答案

您需要设置 CompositingMode你的Graphics反对 SourceOver在其上绘制其他图像之前。

g.Clear(Color.White);
g.CompositingMode = CompositingMode.SourceOver;
g.DrawImage(src, 0, 0);

默认CompositingModeSourceCopy ,它在你的 src 中采用了透明的黑色 (R=G=B=A=0) 像素。图像并将它们渲染为黑色像素。 SourceOver将进行 alpha 混合,这正是您要寻找的。

详情请看这里:CompositingMode Enumeration

关于c# - 去除图像透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27233521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com