Example #1
0
        public ManualRedEyeRemoval(RectangleF redEyeRect, PointF redEyePoint)
        {
            _redEyeRemoval      = new Aurigma.GraphicsMill.Transforms.RedEyeRemoval();
            _redEyeRemoval.Mode = Aurigma.GraphicsMill.Transforms.RedEyeRemovalMode.Manual;

            _redEyeRemoval.FaceRegion = redEyeRect;
            _redEyeRemoval.EyePoint   = redEyePoint;
        }
        private void RemoveRedEyeButtonClickHandler(object sender, RoutedEventArgs e)
        {
            if (_redEyeRemovalStep == 2)
            {
                float x = (float)(_pointAdorner.Point.X * (_redEyeBitmap.Width / _frame.Photo.ActualWidth));
                float y = (float)(_pointAdorner.Point.Y * (_redEyeBitmap.Height / _frame.Photo.ActualHeight));

                var redEyePoint = new System.Drawing.PointF(x, y);

                if (_manualRedEyeIndex < _redEyeTransform.Transforms.Count)
                {
                    _redEyeTransform.Transforms[_manualRedEyeIndex] = new ManualRedEyeRemoval(_redEyeRect, redEyePoint);
                }
                else
                {
                    _redEyeTransform.Transforms.Add(new ManualRedEyeRemoval(_redEyeRect, redEyePoint));
                }
                _manualRedEyeIndex++;

                using (var manualModeTransform = new Aurigma.GraphicsMill.Transforms.RedEyeRemoval())
                {
                    manualModeTransform.Mode     = Aurigma.GraphicsMill.Transforms.RedEyeRemovalMode.Manual;
                    manualModeTransform.EyePoint = redEyePoint;
                    manualModeTransform.ApplyTransform(_redEyeBitmap);
                }

                _frame.Photo.Source = PhotoItem.CreateBitmapSource(CreatePreviewBitmap(_redEyeBitmap, Aurigma.GraphicsMill.Transforms.ResizeMode.Fit));

                _undoRedEyeButton.IsEnabled = _redEyeBitmap.CanUndo;
                _redoRedEyeButton.IsEnabled = _redEyeBitmap.CanRedo;

                _stepDescription.Text        = (string)FindResource(Constants.ImageEditorRedEyeStep3TextKey);
                _applyRedEyeButton.IsEnabled = true;
            }
            else
            {
                throw new System.Exception("Internal state error. RemoveRedEyeButtonClickHandler.");
            }
        }
        private void DoAutoRedEye(object objBitmap)
        {
            _progressDialog.SetRange(0, 100);
            Aurigma.GraphicsMill.Bitmap bitmap = (Aurigma.GraphicsMill.Bitmap)objBitmap;
            using (var autoModeTransform = new Aurigma.GraphicsMill.Transforms.RedEyeRemoval())
            {
                autoModeTransform.Mode      = Aurigma.GraphicsMill.Transforms.RedEyeRemovalMode.Semiautomatic;
                autoModeTransform.Progress += new Aurigma.GraphicsMill.ProgressEventHandler(TransformProgressEventHandler);
                autoModeTransform.ApplyTransform(bitmap);
                autoModeTransform.Progress -= new Aurigma.GraphicsMill.ProgressEventHandler(TransformProgressEventHandler);
            }

            if (_progressDialog.IsAborted)
            {
                _progressDialog.IsComplete = false;
            }
            else
            {
                _progressDialog.IsComplete = true;
            }

            _progressDialog.End();
        }
Example #4
0
 public AutoRedEyeRemoval(RectangleF redEyeRect)
 {
     _redEyeRemoval            = new Aurigma.GraphicsMill.Transforms.RedEyeRemoval();
     _redEyeRemoval.Mode       = Aurigma.GraphicsMill.Transforms.RedEyeRemovalMode.Semiautomatic;
     _redEyeRemoval.FaceRegion = redEyeRect;
 }