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(); }
public AutoRedEyeRemoval(RectangleF redEyeRect) { _redEyeRemoval = new Aurigma.GraphicsMill.Transforms.RedEyeRemoval(); _redEyeRemoval.Mode = Aurigma.GraphicsMill.Transforms.RedEyeRemovalMode.Semiautomatic; _redEyeRemoval.FaceRegion = redEyeRect; }