检查像素的颜色是否为预定义的系统颜色
本文关键字:颜色 预定义 系统 是否 检查 像素 | 更新日期: 2023-09-27 18:02:32
在以下代码中:
Bitmap bmp = new Bitmap((int)ArrayHeight, (int)ArrayWidth, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Graphics gBmp = Graphics.FromImage(bmp);
gBmp.CompositingMode = CompositingMode.SourceCopy;
System.Drawing.Color green = System.Drawing.Color.FromArgb(0x40, 0, 0xff, 0);
System.Drawing.Brush greenBrush = new SolidBrush(green);
gBmp.FillPolygon(greenBrush, polygonPoints);
for (int i = 0; i < ArrayHeight; i++)
{
for (int j = 0; j < ArrayWidth; j++)
{
System.Drawing.Color pixel = bmp.GetPixel(i,j);
if (pixel.IsSystemColor.Equals("green"))
{
PolyArray[i, j] = (byte)TerrainValue;
}
}
}
我想检查一下位图中该位置的像素是否为系统绘制颜色"绿色",但它永远不会返回true。
我做错了什么?
我不确定为什么需要将green
与系统颜色进行比较。IsSystemColor
返回一个bool
但这应该可以。
if (pixel.IsSystemColor)
{
PolyArray[i, j] = (byte)TerrainValue;
}
或者(我真的认为这是你想要的)
if (pixel == green)
{
PolyArray[i, j] = (byte)TerrainValue;
}