예제 #1
0
        private byte[] applyTransform(TColor[,] _procColor, int[,] _procDouble)
        {
            int calcvalR = 0;
            int calcvalG = 0;
            int calcvalB = 0;
            for (int a = 0; a < 3; a++)
            {
                for (int b = 0; b < 3; b++)
                {
                    calcvalR += _procColor[a, b].r * _procDouble[a, b];
                    calcvalG += _procColor[a, b].g * _procDouble[a, b];
                    calcvalB += _procColor[a, b].b * _procDouble[a, b];
                }
            }

            calcvalR = calcvalR / 3;
            calcvalG = calcvalG / 3;
            calcvalB = calcvalB / 3;

            if (calcvalR < 0)
                calcvalR = 0;
            else if (calcvalR > 255)
                calcvalR = 255;

            if (calcvalG < 0)
                calcvalG = 0;
            else if (calcvalG > 255)
                calcvalG = 255;

            if (calcvalB < 0)
                calcvalB = 0;
            else if (calcvalB > 255)
                calcvalB = 255;

            byte[] retval = new byte[3];
            retval[0] = (byte)calcvalR;
            retval[1] = (byte)calcvalG;
            retval[2] = (byte)calcvalB;
            return retval;
        }
예제 #2
0
        private TColor GetAPixel(int _x, int _y)
        {
            int anIndex = (_y * 640 + _x) * 4;

            TColor retval = new TColor();

            retval.r = myCacheArray[anIndex + 2]; //r
            retval.g = myCacheArray[anIndex + 1];
            retval.b = myCacheArray[anIndex];

            return retval;
        }