我正在尝试编写可以从background
移除白色jpeg
的代码 - 图片,可以将它们保存为相同的格式。
到目前为止,这是我的代码:
string imgPath = Server.MapPath("~/App_Files/" + Profile.CompanyName + "/Temp/test.jpg");
Bitmap bmp = RADBase.ImageHandler.LoadImage(imgPath);
bmp.MakeTransparent(Color.White);
System.Drawing.Imaging.ImageFormat format = new System.Drawing.Imaging.ImageFormat(Guid.NewGuid());
bmp.Save(imgPath, format);
它会删除白色背景,但图像上仍有白色边缘。不确定如何删除完整的白色背景?
答案 0 :(得分:1)
一种方法是创建一系列颜色,看起来是白色并检查每个像素是否为“白色”。然后,您可以将这些像素设置为Color.Transparent
:
string imgPath = Server.MapPath("~/App_Files/" + Profile.CompanyName + "/Temp/test.jpg");
Bitmap source = new Bitmap(imgPath);
source.MakeTransparent();
for (int x = 0; x < source.Width; x++)
{
for (int y = 0; y < source.Height; y++)
{
Color currentColor = source.GetPixel(x, y);
if (currentColor.R >= 220 && currentColor.G >= 220 && currentColor.B >= 220)
{
source.SetPixel(x, y, Color.Transparent);
}
}
}
source.Save(imgPath);
这是一个粗略的解决方案,因为很难说,如果一种颜色是白色或不是白色。也许你必须调整范围以获得更好的结果。 另一点是,T恤的某些颜色看起来也是白色,所以这些也是透明的。
答案 1 :(得分:-3)
你应该清理所有白色的catefories,你可以看到链接下面的类别。你可以看到特别灰色和白色的类别(灰色类别= gri kategorisi,白色类别= beyaz类别)。您可以使用RBG值删除颜色。