C# 如何通过GetPixel方法比较颜色和像Color.Black这样的方法传递的颜色?
我有一个循环,从图像中获取像素颜色,并尝试查看它们是否与作为参数传递到方法中的颜色相同 我尝试了C# 如何通过GetPixel方法比较颜色和像Color.Black这样的方法传递的颜色?,c#,image,colors,getpixel,C#,Image,Colors,Getpixel,我有一个循环,从图像中获取像素颜色,并尝试查看它们是否与作为参数传递到方法中的颜色相同 我尝试了Equals方法,但不起作用。我还尝试了ToKnown方法。 看起来匹配不起作用,因为合成两种颜色的值不匹配 例如: 使用GetPixel: {Name=ff000000, ARGB=(255, 0, 0, 0)} 颜色。黑色: {Name=Black, ARGB=(255, 0, 0, 0)} if (pixelColor.ToArgb().Equals(startingOffsetColor.T
Equals
方法,但不起作用。我还尝试了ToKnown
方法。
看起来匹配不起作用,因为合成两种颜色的值不匹配
例如:
使用GetPixel:
{Name=ff000000, ARGB=(255, 0, 0, 0)}
颜色。黑色:
{Name=Black, ARGB=(255, 0, 0, 0)}
if (pixelColor.ToArgb().Equals(startingOffsetColor.ToArgb())) { }
上面的代码可以工作,但我仍然想知道是否有更好的方法或任何可以减少CPU开销的方法,因为我正在循环语句中使用它。,Color.Equality操作符
…与颜色结构的ARGB值进行比较。它还比较了一些州的国旗。如果只想比较两种颜色结构的ARGB值,请使用ToArgb方法进行比较
因此,您使用的方法对于比较原始值是正确的
编辑
.ToArgb()
返回一个int
,因此您可以使用=
进行比较,如果您觉得太冗长,则不需要使用.Equals()
。是的,它只是一个int,因此我可以使用“==”。是我的JavaBG让我直接使用Equals,而不首先检查返回类型。