public void filter_RGB_Mode(ImageManipulatorType.Name color)
        {
            // letztes zwischengespeichertes Bild holen
            PixelState    state  = PixelState.getInstance();
            I_ImageObject imgObj = state.get_last();
            // Vergleichsliste mit RGB Klassen Typen erstellen
            List <ImageManipulatorType.Name> container = new List <ImageManipulatorType.Name>();

            container.Add(ImageManipulatorType.Name.RGB_BLUE);
            container.Add(ImageManipulatorType.Name.RGB_RED);
            container.Add(ImageManipulatorType.Name.RGB_GREEN);

            // wenn das letzte zwischengespeicherte Bild mit dieser funktion verändert wurde
            if (container.Contains(imgObj.get_ImageManipulatorType()))
            {
                /* dann diese Veränderung rückgängig machen, da ansonsten das Bild schwarz wird.
                 * 2 aufeinander folgende Kanal filter => schwarzes bild, da jeweils 2 Farbkanäle
                 * pro Funktions aufruf auf 0 gesetzt werden. Nach 2 Funktionsaufrufen sind also
                 * alle Kanäle 0 was schwarzes Bild ergibt.
                 */
                this.undo();
            }

            state.add(new ImageObject(pic.Image, color));

            ThreadHandler thHandler = new ThreadHandler(threads);

            new ImageManipulator((Bitmap)pic.Image, color, thHandler).perform();
            this.show_picture(thHandler);
        }
        public void filter_Sample_Board(int count)
        {
            PixelState state = PixelState.getInstance();

            state.add(new ImageObject(pic.Image, ImageManipulatorType.Name.SAMPLE_BOARD));
            ThreadHandler thHandler = new ThreadHandler(threads);

            int[] colors = new int[1] {
                count
            };
            new ImageManipulator((Bitmap)pic.Image, ImageManipulatorType.Name.SAMPLE_BOARD, thHandler, colors).perform();
            this.show_picture(thHandler);
        }
        private void try_save_PixelState(ImageObject imgObj)
        {
            // solange noch nicht alle Threads beendet wurden -> warten
            while (this.threadsAreAlive())
            {
                // bg_filter_thread
                Thread.Sleep(2);
            }
            // PixelState Objekt besorgen
            PixelState state = PixelState.getInstance();

            // ab hier Thread sicher speichern
            lock (_locker)
            {
                state.add(imgObj);
            }
        }