Pinta.Core.BrightnessContrastEffect.Calculate C# (CSharp) Метод

Calculate() приватный Метод

private Calculate ( ) : void
Результат void
        private void Calculate()
        {
            if (Data.Contrast < 0) {
                multiply = Data.Contrast + 100;
                divide = 100;
            } else if (Data.Contrast > 0) {
                multiply = 100;
                divide = 100 - Data.Contrast;
            } else {
                multiply = 1;
                divide = 1;
            }

            if (rgbTable == null)
                rgbTable = new byte[65536];

            if (divide == 0) {
                for (int intensity = 0; intensity < 256; intensity++) {
                    if (intensity + Data.Brightness < 128)
                        rgbTable[intensity] = 0;
                    else
                        rgbTable[intensity] = 255;
                }
            } else if (divide == 100) {
                for (int intensity = 0; intensity < 256; intensity++) {
                    int shift = (intensity - 127) * multiply / divide + 127 - intensity + Data.Brightness;

                    for (int col = 0; col < 256; ++col) {
                        int index = (intensity * 256) + col;
                        rgbTable[index] = Utility.ClampToByte (col + shift);
                    }
                }
            } else {
                for (int intensity = 0; intensity < 256; ++intensity) {
                    int shift = (intensity - 127 + Data.Brightness) * multiply / divide + 127 - intensity;

                    for (int col = 0; col < 256; ++col) {
                        int index = (intensity * 256) + col;
                        rgbTable[index] = Utility.ClampToByte (col + shift);
                    }
                }
            }
        }