/// <summary> /// Constructs a new <see cref="IFilter{T}"/> from the include an omit configuration cards. /// </summary> /// <param name="include">the include configuration card</param> /// <param name="omit">the omit configuration card</param> /// <returns>the corresponding <see cref="IFilter{T}"/></returns> public IFilter <byte[]> GetFilter(string include, string omit) { IFilter <byte[]> filter; if (include != null && omit != null) { filter = new ConjunctionFilter <byte[]> { Filters = new List <IFilter <byte[]> > { ParseFilter(include), new NegationFilter <byte[]> { Filter = ParseFilter(omit) } } }; } else if (include != null) { filter = ParseFilter(include); } else { filter = new NegationFilter <byte[]> { Filter = ParseFilter(omit) }; } return(filter); }
private void negationButtonClick(object sender, RoutedEventArgs e) { if (imageHandler != null) { // TODO Background worker new Thread(() => { NegationFilter negationFilter = new NegationFilter(); imageHandler.ApplyFilter(image => negationFilter.ApplyFilter(image)); Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(() => { filteredImage.Source = BitmapLoader.loadBitmap(imageHandler.getFiltered()); })); }).Start(); } }
/// <summary> /// Constructs a new <see cref="IFilter{T}"/> from the include an omit configuration cards. /// </summary> /// <param name="include">the include configuration card</param> /// <param name="omit">the omit configuration card</param> /// <returns>the corresponding <see cref="IFilter{T}"/></returns> public IFilter<byte[]> GetFilter(string include, string omit) { IFilter<byte[]> filter; if (include != null && omit != null) { filter = new ConjunctionFilter<byte[]> { Filters = new List<IFilter<byte[]>> { ParseFilter(include), new NegationFilter<byte[]> { Filter = ParseFilter(omit) } } }; } else if (include != null) { filter = ParseFilter(include); } else { filter = new NegationFilter<byte[]> { Filter = ParseFilter(omit) }; } return filter; }