public void CutImage() { Bitmap bitmap = (Bitmap)BitmapToBitmapSourceConverter.ConvertBack(this.Image, typeof(Bitmap), null, CultureInfo.CurrentUICulture); System.Drawing.Point upperLeftBitmapPoint = new System.Drawing.Point((int)(this.UpperLeftPoint.X / this.ImageWidth * bitmap.Width), (int)(this.UpperLeftPoint.Y / this.ImageHeight * bitmap.Height)); System.Drawing.Point upperRightBitmapPoint = new System.Drawing.Point((int)(this.UpperRightPoint.X / this.ImageWidth * bitmap.Width), (int)(this.UpperRightPoint.Y / this.ImageHeight * bitmap.Height)); System.Drawing.Point bottomLeftBitmapPoint = new System.Drawing.Point((int)(this.BottomLeftPoint.X / this.ImageWidth * bitmap.Width), (int)(this.BottomLeftPoint.Y / this.ImageHeight * bitmap.Height)); System.Drawing.Point bottomRightBitmapPoint = new System.Drawing.Point((int)(this.BottomRightPoint.X / this.ImageWidth * bitmap.Width), (int)(this.BottomRightPoint.Y / this.ImageHeight * bitmap.Height)); Bitmap distortedBitmap = ImageManipulation.Cut(bitmap, upperLeftBitmapPoint, upperRightBitmapPoint, bottomLeftBitmapPoint, bottomRightBitmapPoint); this.Image = (ImageSource)BitmapToBitmapSourceConverter.Convert(distortedBitmap, typeof(ImageSource), null, CultureInfo.CurrentUICulture); this.InvokePropertyChanged(() => this.Image); this.State = CapturePictureViewState.AcquisitionCompleted; this.ShowGrid = false; }