private String Window_OnDrop_Sub(DragEventArgs e) { if (!e.Data.GetDataPresent(DataFormats.FileDrop)) { return("Not a file!"); } String[] files = (string[])e.Data.GetData(DataFormats.FileDrop); if (files.Length > 1) { return("Too many files!"); } ImageSourceFileName = files[0]; if (!File.Exists(ImageSourceFileName)) { return("Not a file!"); } FileStream fs = null; try { fs = File.Open(ImageSourceFileName, FileMode.Open, FileAccess.Read, FileShare.None); } catch (IOException) { if (fs != null) { fs.Close(); } return("File already in use!"); } Bitmap bitmapSource = null; try { bitmapSource = new Bitmap(fs); } catch (System.Exception /*ex*/) { bitmapSource.Dispose(); return("Not an image!"); } ImageSource.Source = Imaging.CreateBitmapSourceFromHBitmap( bitmapSource.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); bitmapInfoSource = new BitmapInfo(bitmapSource); UpdateFilteredImage(); return(null); }
private void UpdateFilteredImage() { //IFilter filter = new IdentityFilter(); //IFilter filter = new LensFilter(); IFilter filter = new WarmingFilter85(); ParameterizedFilter parameterizedFilter = filter as ParameterizedFilter; if (parameterizedFilter != null) { parameterizedFilter.Parameter = SliderDensity.Value; } bitmapInfoFiltered = filter.GetFilteredImage(bitmapInfoSource); ImageFiltered.Source = Imaging.CreateBitmapSourceFromHBitmap( bitmapInfoFiltered.ToBitmap().GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); }