Ejemplo n.º 1
0
        private void ChangeContrast(breinImage image)
        {
            byte[] precalc = new byte[256];

            // Precalculate all changes
            for(int i = 0;i < 256;i++) {
                double val = i / 255.0;
                val -= 0.5;
                val *= _contrast;
                val += 0.5;
                val = (int)Math.Round(val * 255);
                if(val < 0) {
                    val = 0;
                }
                else if(val > 255) {
                    val = 255;
                }
                precalc[i] = (byte)val;
            }

            byte[] b = image.ByteArray;

            for(int i = 0, l = b.Length;i < l;i += 4) {
                b[i] = precalc[b[i]];          // b
                b[i + 1] = precalc[b[i + 1]];  // g
                b[i + 2] = precalc[b[i + 2]];  // r
            }

            image.ByteArray = b;
        }
Ejemplo n.º 2
0
        private void ChangeContrast(breinImage image)
        {
            byte[] precalc = new byte[256];

            // Precalculate all changes
            for (int i = 0; i < 256; i++)
            {
                double val = i / 255.0;
                val -= 0.5;
                val *= _contrast;
                val += 0.5;
                val  = (int)Math.Round(val * 255);
                if (val < 0)
                {
                    val = 0;
                }
                else if (val > 255)
                {
                    val = 255;
                }
                precalc[i] = (byte)val;
            }


            byte[] b = image.ByteArray;

            for (int i = 0, l = b.Length; i < l; i += 4)
            {
                b[i]     = precalc[b[i]];      // b
                b[i + 1] = precalc[b[i + 1]];  // g
                b[i + 2] = precalc[b[i + 2]];  // r
            }

            image.ByteArray = b;
        }
Ejemplo n.º 3
0
        public void Run(breinImage image)
        {
            byte[] b    = image.ByteArray;
            byte[] dest = new byte[b.Length];

            GaussianBlur(image.Width, image.Height, _radius, _amount, ref b, ref dest);

            image.ByteArray = dest;
        }
Ejemplo n.º 4
0
        public void Run(breinImage image)
        {
            byte[] b = image.ByteArray;
            byte[] dest = new byte[b.Length];

            GaussianBlur(image.Width, image.Height, _radius, _amount, ref b, ref dest);

            image.ByteArray = dest;
        }
Ejemplo n.º 5
0
        private static void Sharpen(breinImage image, double amount, double radius)
        {
            byte[] src  = image.ByteArray;
            byte[] dest = new byte[src.Length];

            GaussianBlurFilter.GaussianBlur(image.Width, image.Height, radius, amount, ref src, ref dest);

            int i = 0;
            int r, g, b;

            for (int x = 0, l = image.Width; x < l; x++)
            {
                for (int y = 0, k = image.Height; y < k; y++)
                {
                    // Apply difference of gaussian blur filter
                    b = src[i] + (int)((src[i] - dest[i]) * amount);
                    g = src[i + 1] + (int)((src[i + 1] - dest[i + 1]) * amount);
                    r = src[i + 2] + (int)((src[i + 2] - dest[i + 2]) * amount);

                    // Keep inside range 0 to 255
                    if (r < 0)
                    {
                        r = 0;
                    }
                    else if (r > 255)
                    {
                        r = 255;
                    }
                    if (g < 0)
                    {
                        g = 0;
                    }
                    else if (g > 255)
                    {
                        g = 255;
                    }
                    if (b < 0)
                    {
                        b = 0;
                    }
                    else if (b > 255)
                    {
                        b = 255;
                    }

                    // Write back final bytes
                    dest[i]     = (byte)b;
                    dest[i + 1] = (byte)g;
                    dest[i + 2] = (byte)r;

                    i += 4;
                }
            }

            image.ByteArray = dest;
        }
Ejemplo n.º 6
0
        private static void DesaturateImage(breinImage image)
        {
            byte[] b = image.ByteArray;

            for(int i = 0, l = b.Length;i < l;i += 4) {
                b[i] = b[i + 1] = b[i + 2] = (byte)(.299 * b[i + 2] + .587 * b[i + 1] + .114 * b[i]);
            }

            image.ByteArray = b;
        }
Ejemplo n.º 7
0
        private static void DesaturateImage(breinImage image)
        {
            byte[] b = image.ByteArray;

            for (int i = 0, l = b.Length; i < l; i += 4)
            {
                b[i] = b[i + 1] = b[i + 2] = (byte)(.299 * b[i + 2] + .587 * b[i + 1] + .114 * b[i]);
            }

            image.ByteArray = b;
        }
Ejemplo n.º 8
0
        private void ChangeBrightness(breinImage image)
        {
            byte[] b = image.ByteArray;

            for(int i = 0, l = b.Length;i < l;i += 4) {
                b[i] = _precalcTable[b[i]];          // b
                b[i + 1] = _precalcTable[b[i + 1]];  // g
                b[i + 2] = _precalcTable[b[i + 2]];  // r
            }

            image.ByteArray = b;
        }
Ejemplo n.º 9
0
        private static void InvertImage(breinImage image)
        {
            byte[] b = image.ByteArray;

            for(int i = 0, l = b.Length;i < l;i += 4) {
                b[i] = (byte)(255 - b[i]);          // b
                b[i + 1] = (byte)(255 - b[i + 1]);  // g
                b[i + 2] = (byte)(255 - b[i + 2]);  // r
            }

            image.ByteArray = b;
        }
Ejemplo n.º 10
0
        private void ChangeBrightness(breinImage image)
        {
            byte[] b = image.ByteArray;

            for (int i = 0, l = b.Length; i < l; i += 4)
            {
                b[i]     = _precalcTable[b[i]];      // b
                b[i + 1] = _precalcTable[b[i + 1]];  // g
                b[i + 2] = _precalcTable[b[i + 2]];  // r
            }

            image.ByteArray = b;
        }
Ejemplo n.º 11
0
        private static void InvertImage(breinImage image)
        {
            byte[] b = image.ByteArray;

            for (int i = 0, l = b.Length; i < l; i += 4)
            {
                b[i]     = (byte)(255 - b[i]);      // b
                b[i + 1] = (byte)(255 - b[i + 1]);  // g
                b[i + 2] = (byte)(255 - b[i + 2]);  // r
            }

            image.ByteArray = b;
        }
Ejemplo n.º 12
0
        private static void Sharpen(breinImage image, double amount, double radius)
        {
            byte[] src = image.ByteArray;
            byte[] dest = new byte[src.Length];

            GaussianBlurFilter.GaussianBlur(image.Width, image.Height, radius, amount, ref src, ref dest);

            int i = 0;
            int r, g, b;

            for(int x = 0, l = image.Width;x < l;x++) {
                for(int y = 0, k = image.Height;y < k;y++) {
                    // Apply difference of gaussian blur filter
                    b = src[i]     + (int)((src[i]     - dest[i])     * amount);
                    g = src[i + 1] + (int)((src[i + 1] - dest[i + 1]) * amount);
                    r = src[i + 2] + (int)((src[i + 2] - dest[i + 2]) * amount);

                    // Keep inside range 0 to 255
                    if(r < 0)
                        r = 0;
                    else if(r > 255)
                        r = 255;
                    if(g < 0)
                        g = 0;
                    else if(g > 255)
                        g = 255;
                    if(b < 0)
                        b = 0;
                    else if(b > 255)
                        b = 255;

                    // Write back final bytes
                    dest[i] = (byte)b;
                    dest[i + 1] = (byte)g;
                    dest[i + 2] = (byte)r;

                    i += 4;
                }
            }

            image.ByteArray = dest;
        }
Ejemplo n.º 13
0
 public void Run(breinImage image)
 {
     Sharpen(image, _amount, _radius);
 }
Ejemplo n.º 14
0
 public void Run(breinImage image)
 {
     PrecalculateTable();
     ChangeBrightness(image);
 }
Ejemplo n.º 15
0
 public void Run(breinImage image)
 {
     Sharpen(image, _amount, _radius);
 }
Ejemplo n.º 16
0
 public void Run(breinImage image)
 {
     InvertImage(image);
 }
Ejemplo n.º 17
0
 public void Run(breinImage image)
 {
     PrecalculateTable();
     ChangeBrightness(image);
 }
Ejemplo n.º 18
0
 public void Run(breinImage image)
 {
     DesaturateImage(image);
 }
Ejemplo n.º 19
0
 public void Run(breinImage image)
 {
     ChangeContrast(image);
 }
Ejemplo n.º 20
0
 public void Run(breinImage image)
 {
     DesaturateImage(image);
 }
Ejemplo n.º 21
0
 public void Run(breinImage image)
 {
     InvertImage(image);
 }
Ejemplo n.º 22
0
 public void Run(breinImage image)
 {
     ChangeContrast(image);
 }