给Argb值一个整数值

时间:2018-09-27 16:42:59

标签: c#

我正在尝试编写一些代码,以使我可以传递图像(热图)并返回2d数组,可以将其放入excel以进行定量分析。我可以创建一个二维的Argb值数组,代表每个像素,但是我试图创建一个缩放器等效值。由于Argb值的变化(这不是真正的热量图),因此我正在使用的当前代码无法与我的代码配合使用。

public static class ColorBGRToScalarConverter
{
    private static int MarginOfError;

    public static int Convert(Color input)
    {

        int r = input.R;
        int g = input.G;
        int b = input.B;

        var min = new[] { r, g, b }.ToList().Min();

        if (b - 240 > 0 && r != 0)
        {
            MarginOfError += r;
            r = 0;
        }


        // Handle errant values from JPG artifacts/blur/anti-aliasing or margin of error

        if (r == min)
        {
            r = 0;
        }
        if (g == min)
        {
            g = 0;
        }
        if (b == min)
        {
            b = 0;
        }

       // Console.WriteLine($@"Margin of error is {MarginOfError}");

        if (b == 255 && r == 0)
        {
            return g;
        }
        else if (g == 255 && r == 0)
        {
            return 255 - b + 255;
        }
        else if (b == 0 && g == 255)
        {
            return 511 + r;
        }
        else if (b == 0 && r == 255)
        {
            return 255 - g + 766;
        }
        else if (b == 0 && g == 0 && r != 0)
        {
            return 1023 + r;
        }


        throw new Exception("I should have found a value.");
    }
}
}

我是否可以使用类似的过程为红色-蓝色创建代表整数的颜色表示(例如0-1279)。

0 个答案:

没有答案