Ejemplo n.º 1
0
 public Correction(ICorrection ic)
 {
     _blue = new ColorValue(ic.Blue);
     _green = new ColorValue(ic.Green);
     _red = new ColorValue(ic.Red);
     _black = new LevelsValue(ic.Black);
     _shadow = new LevelsValue(ic.Shadow);
     _highlight = new LevelsValue(ic.Highlight);
     _white = new LevelsValue(ic.White);
     _midpoint = new MidtoneValue(ic.Midpoint);
     _contrast = new ContrastValue(ic.Contrast);
     _saturation = new SaturationValue(ic.Saturation);
     _rotate = new RotationValue(ic.Rotate);
 }
Ejemplo n.º 2
0
        void CallCorrecionWindow(ICorrection window)
        {
            Form asForm = window as Form;

            asForm.ShowInTaskbar = false;
            window.SetPicture(currentImage);

            if (asForm.ShowDialog() == DialogResult.OK)
            {
                undoImage            = currentImage.Clone() as Bitmap;
                pictureBoxMain.Image = window.GetPicture();
                currentImage         = pictureBoxMain.Image.Clone() as Bitmap;
                redoImage            = currentImage.Clone() as Bitmap;
            }
        }
Ejemplo n.º 3
0
        public static Bitmap ProcessBitmap(Bitmap bitmap, ICorrection icorrection)
        {
            // Make the adjustments.
            if (icorrection.Contrast != 0)
            {
                bitmap.ColorAdjustment.Contrast(icorrection.Contrast);
            }
            if ((icorrection.Black != 0) || (icorrection.White != 1) || (icorrection.Shadow != 0) || (icorrection.Midpoint != 1) ||
                (icorrection.Highlight != 1))
            {
                bitmap.ColorAdjustment.Levels(icorrection.Black, icorrection.White, icorrection.Shadow, icorrection.Midpoint, icorrection.Highlight, HistogramMode.Luminosity);
            }
            if ((icorrection.Blue != 0) || (icorrection.Green != 0) || (icorrection.Red != 0))
            {
                bitmap.ColorAdjustment.ChannelBalance(new Single[3]
                {
                    icorrection.Blue,
                    icorrection.Green,
                    icorrection.Red
                }, new Single[3]
                   {
                       1f,
                       1f,
                       1f
                   });
            }

            if (icorrection.Rotate != 0)
            {
                bitmap.Transforms.Rotate(icorrection.Rotate);
            }

            if (icorrection.Saturation != 0)
            {
                bitmap.ColorAdjustment.AdjustHsl(0, icorrection.Saturation, 0);
            }

            return bitmap;
        }