diff --git a/ImageEffectsLib/ImageEffectsForm.Designer.cs b/ImageEffectsLib/ImageEffectsForm.Designer.cs index c68657294..88fb5a390 100644 --- a/ImageEffectsLib/ImageEffectsForm.Designer.cs +++ b/ImageEffectsLib/ImageEffectsForm.Designer.cs @@ -249,6 +249,8 @@ private void InitializeComponent() this.pbResult.Name = "pbResult"; this.pbResult.Size = new System.Drawing.Size(688, 448); this.pbResult.TabIndex = 11; + this.pbResult.DragDrop += new System.Windows.Forms.DragEventHandler(this.pbResult_DragDrop); + this.pbResult.DragEnter += new System.Windows.Forms.DragEventHandler(this.pbResult_DragEnter); // // ImageEffectsForm // diff --git a/ImageEffectsLib/ImageEffectsForm.cs b/ImageEffectsLib/ImageEffectsForm.cs index 0db6bdc63..be2644bbe 100644 --- a/ImageEffectsLib/ImageEffectsForm.cs +++ b/ImageEffectsLib/ImageEffectsForm.cs @@ -57,6 +57,7 @@ public ImageEffectsForm(Image img, List effects = null) public void EditorMode() { + pbResult.AllowDrop = true; btnLoadImage.Visible = true; btnSaveImage.Visible = true; } @@ -340,6 +341,9 @@ private void btnLoadImage_Click(object sender, EventArgs e) { using (OpenFileDialog ofd = new OpenFileDialog()) { + ofd.Title = "Browse for images..."; + ofd.Filter = "Image files (*.jpg, *.jpeg, *.png, *.gif, *.bmp)|*.jpg;*.jpeg;*.png;*.gif;*.bmp"; + if (ofd.ShowDialog() == DialogResult.OK) { if (DefaultImage != null) DefaultImage.Dispose(); @@ -366,6 +370,47 @@ private void btnSaveImage_Click(object sender, EventArgs e) } } + private void pbResult_DragEnter(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop, false) || e.Data.GetDataPresent(DataFormats.Bitmap, false)) + { + e.Effect = DragDropEffects.Copy; + } + else + { + e.Effect = DragDropEffects.None; + } + } + + private void pbResult_DragDrop(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop, false)) + { + string[] files = e.Data.GetData(DataFormats.FileDrop, false) as string[]; + + if (files != null && files.Length > 0) + { + if (Helpers.IsImageFile(files[0])) + { + if (DefaultImage != null) DefaultImage.Dispose(); + DefaultImage = Helpers.GetImageFromFile(files[0]); + UpdatePreview(); + } + } + } + else if (e.Data.GetDataPresent(DataFormats.Bitmap, false)) + { + Image img = e.Data.GetData(DataFormats.Bitmap, false) as Image; + + if (img != null) + { + if (DefaultImage != null) DefaultImage.Dispose(); + DefaultImage = img; + UpdatePreview(); + } + } + } + private void btnOK_Click(object sender, EventArgs e) { Effects = GetImageEffects();