如何比较GetPixel方法的颜色和Color.Black等方法中传递的颜色?
我有一个从图像中获取像素的循环,并尝试查看它们是否与作为参数传递给方法的颜色相同。
我尝试了Equals
方法,但它不起作用。 我也尝试过ToKnown
方法。 看起来匹配不起作用,因为合成两种颜色的值不匹配。
例:
使用GetPixel:
{Name=ff000000, ARGB=(255, 0, 0, 0)}
Color.Black:
{Name=Black, ARGB=(255, 0, 0, 0)} if (pixelColor.ToArgb().Equals(startingOffsetColor.ToArgb())) { }
上面的代码工作,但我仍然想知道是否有任何更好的方法或任何方法可以减少任何CPU开销,因为我在循环语句中使用它。
根据MSDN ,Color.Equality运算符……
…比较颜色结构的ARGB值以上。 它还对一些状态标志进行了比较。 如果只想比较两种颜色结构的ARGB值,请使用ToArgb方法进行比较
因此,您使用的方法对于比较原始值是正确的
编辑
.ToArgb()
返回一个int
这样你就可以使用==
进行比较,如果发现它太冗长,你不需要使用.Equals()
。