在 .Net C# 中,可以使用 System.Drawing 命名空间中的 Bitmap 和 Graphics 类库来处理图片。以下是一段示例代码,可以去除白色背景:
public static Bitmap RemoveWhiteBackground(Bitmap bmp)
{
Color white = Color.FromArgb(255, 255, 255);
Bitmap newBmp = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(newBmp);
g.Clear(Color.Transparent);
g.DrawImage(bmp, 0, 0);
for (int x = 0; x < newBmp.Width; x++)
{
for (int y = 0; y < newBmp.Height; y++)
{
Color pixel = newBmp.GetPixel(x, y);
if (pixel.A == 255 && pixel.R == white.R && pixel.G == white.G && pixel.B == white.B)
{
newBmp.SetPixel(x, y, Color.Transparent);
}
}
}
return newBmp;
}
Bitmap 图片可以直接去除白色背景,代码如下:
/// <summary>
/// 去除图片白色背景色
/// </summary>
/// <param name="img"></param>
/// <returns></returns>
public System.Drawing.Bitmap ImgDelBlack(Bitmap img)
{
for (int i = 0; i < img.Width; i++)
{
for (int j = 0; j < img.Height; j++)
{
System.Drawing.Color c = img.GetPixel(i, j);
if (!(c.R < 240 || c.G < 240 || c.B < 240))
{
img.SetPixel(i, j, System.Drawing.Color.Transparent);
}
}
}
return img;
}
效果如下: