예제 #1
0
        public mModifyGrayscale()
        {
            Effect         = new GrayscaleFilter();
            Effect.Enabled = true;

            filter = Effect;
        }
예제 #2
0
        private void ConfigurePreparedFilters()
        {
            PreparedFilter preset = (PreparedFilter)GetFieldValue(FieldType.PREPARED_FILTER_HIGHLIGHT);

            while (Filters.Count > 0)
            {
                Remove(Filters[0]);
            }
            switch (preset)
            {
            case PreparedFilter.TEXT_HIGHTLIGHT:
                Add(new HighlightFilter(this));
                break;

            case PreparedFilter.AREA_HIGHLIGHT:
                AbstractFilter bf = new BrightnessFilter(this);
                bf.Invert = true;
                Add(bf);
                bf        = new BlurFilter(this);
                bf.Invert = true;
                Add(bf);
                break;

            case PreparedFilter.GRAYSCALE:
                AbstractFilter f = new GrayscaleFilter(this);
                f.Invert = true;
                Add(f);
                break;

            case PreparedFilter.MAGNIFICATION:
                Add(new MagnifierFilter(this));
                break;
            }
        }
예제 #3
0
        private Sf.Filter GetGrayscaleFilter()
        {
            GrayscaleFilter filter = new GrayscaleFilter();

            filter.Enabled = true;
            return(filter);
        }
        public FilterVM CreateNewFilter()
        {
            GrayscaleFilter concrete = new GrayscaleFilter();
            FilterVM        vm       = new FilterVM(concrete);

            vm.Name = "New Grayscale Filter";
            return(vm);
        }
 /// <summary>
 ///     Applies the grayscale filter.
 /// </summary>
 public async Task ApplyGrayscaleFilter()
 {
     await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
                                                                   () =>
     {
         this.copySourcePicture();
         var grayscaleFilter = new GrayscaleFilter(this.CopiedPicture);
         grayscaleFilter.applyGrayscaleFilter();
     }
                                                                   );
 }
예제 #6
0
        public void GrayscaleFilterConstructorTest()
        {
            Bitmap        b            = new Bitmap(10, 10);
            IntPtr        Scan0        = new IntPtr(); // TODO: Passenden Wert initialisieren
            int           stride       = 0;            // TODO: Passenden Wert initialisieren
            int           height_start = 0;            // TODO: Passenden Wert initialisieren
            int           height_end   = 0;            // TODO: Passenden Wert initialisieren
            ThreadHandler thInfo       = null;         // TODO: Passenden Wert initialisieren

            int[]           i      = new int[2];
            GrayscaleFilter target = new GrayscaleFilter(b, Scan0, stride, height_start, height_end, thInfo, i);
        }
예제 #7
0
        /// <summary>
        /// Simulate color impaired vision
        /// </summary>
        /// <param name="inData">pixels data to be processed</param>
        /// <returns>processed pixels data</returns>
        public int[] Simulate(int[] inData)
        {
            int[]  outData = { };
            Filter filter;

            switch (MainWindow.color_filter_key)
            {
            case 1:         // Deuteran
                filter = new RedGreenFilter(9591, 23173, -730);
                break;

            case 2:         // Protan
                filter = new RedGreenFilter(3683, 29084, 131);
                break;

            case 3:         // Tritan
                filter = new TritanFilter();
                break;

            case 4:         // Grayscale
                filter = new GrayscaleFilter();
                break;

            default:
                filter = new GrayscaleFilter();
                break;
            }

            try
            {
                outData = filter.filter(inData);
                if (outData.Length != inData.Length)
                {
                    throw new Exception("Output pixels data length doesn't match");
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
            return(outData);
        }