比较颜色与容差

Sam*_*ach 2 c# image bitmap visual-studio

今天我试图从 BitMap 检查 CSharp 中的一种颜色是否与另一种颜色相似。这是代码,我正在使用:

Color blah = screenshot.GetPixel(x, y);
if (blah == Color.Red) {
...
Run Code Online (Sandbox Code Playgroud)

问题是,我从来没有得到过true,因为颜色有一点不同的色调。有什么方法可以比较这些颜色的公差吗?

谢谢!

Ash*_*ani 6

您可以检查定义的公差值并检查它们的差异是否小于该值:

Color blah = screenshot.GetPixel(x, y);
    if (Math.Abs(Color.Red.GetHue() - blah.GetHue()) <= tolorance)
    {
        // ...
    }
Run Code Online (Sandbox Code Playgroud)