private void ImageCropper_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.R) { _cropperPictureBox.Image = (Bitmap)ImageCropperHelper.RotateImage(_cropperPictureBox.Image); GC.Collect(); } if (e.KeyCode == Keys.S) { var image = _cropperPictureBox.Image; var diff = _cropperPictureBox.Image.Width - _cropperPictureBox.Image.Height; var location = diff > 0 ? new Point(_selectorRectangle.X, _selectorRectangle.Y - diff / 2) : new Point(_selectorRectangle.X + diff / 2, _selectorRectangle.Y); var area = new Rectangle(location, _selectorRectangle.Size); try { using (var croppedImage = ((Bitmap)image).Clone(area, image.PixelFormat)) { var path = Path.Combine(_outputDirectory, "1.png"); croppedImage?.Save(path); } } catch { } GC.Collect(); } }
public ImageCropper(string originalImagePath, string outputDirectory, List <string> imagesToCrop) { InitializeComponent(); _imagesToCrop = imagesToCrop; _outputDirectory = outputDirectory; this.Width = _frameWidth + 16; this.Height = _frameWidth + 39; _cropperPictureBox.Width = _frameWidth; _cropperPictureBox.Height = _frameWidth; foreach (var imageToCrop in imagesToCrop) { } OriginalImage = originalImagePath; var image = ImageCropperHelper.GetScaledPicture(OriginalImage, _frameWidth, _frameWidth); _cropperPictureBox.Image = image; Refresh(); }