简单地说,我想将图像中的任何像素设置为白色,其中亮度大于给定阈值。我编写了以下代码,这些代码可以快速准确地用于我的目的。
using (Bitmap image = new Bitmap("C:\\temp\\test1.png"))
{
for (int x = 0; x < image.Width; x++)
{
for (int y = 0; y < image.Height; y++)
{
Color c = image.GetPixel(x, y);
float f = c.GetBrightness(); //From 0 (black) to 1 (white)
if (f > 0.1) { image.SetPixel(x, y, Color.White); }
}
}
image.Save("C:\\temp\\test2.png");
}
但是,必须逐个循环遍历每个像素,这感觉是错误的。是否有使用另一种 .NET 成像或图形方法来解决此问题的优化方法?