AForge.Imaging.Filters.LevelsLinear.CalculateMap C# (CSharp) Method

CalculateMap() private method

Calculate conversion map.
private CalculateMap ( IntRange inRange, IntRange outRange, byte map ) : void
inRange IntRange Input range.
outRange IntRange Output range.
map byte Conversion map.
return void
        private void CalculateMap( IntRange inRange, IntRange outRange, byte[] map )
        {
            double k = 0, b = 0;

            if ( inRange.Max != inRange.Min )
            {
                k = (double) ( outRange.Max - outRange.Min ) / (double) ( inRange.Max - inRange.Min );
                b = (double) ( outRange.Min ) - k * inRange.Min;
            }

            for ( int i = 0; i < 256; i++ )
            {
                byte v = (byte) i;

                if ( v >= inRange.Max )
                    v = (byte) outRange.Max;
                else if ( v <= inRange.Min )
                    v = (byte) outRange.Min;
                else
                    v = (byte) ( k * v + b );

                map[i] = v;
            }
        }
    }