public void applyColorFilter(int red, int green, int blue)
        {
            Bitmap image;

            if (imageModel.getFilteredImage() != null)
            {
                image = imageModel.getFilteredImage();
            }
            else
            {
                image = imageModel.getBaseImage();
            }

            this.undoBuffer.push(image);

            if (FilterController.Color(image, red, green, blue))
            {
                imageModel.setFilteredImage(image);
                baseView.setBaseImageFromBitmap(image);
                imageModel.setCIEImage(setCIEImage(image));
                RGBModel[,] rgbImage = convertToRGB(imageModel.getCIEImage());
                histogramView.setBaseImage(imageModel.getFilteredImage());
                if (red != 0 && green == 0 && blue == 0)
                {
                    channelView.setRedChannel(image, setRedChannel(rgbImage));
                }
                else if (green != 0 && red == 0 && blue == 0)
                {
                    channelView.setGreenChannel(image, setGreenChannel(rgbImage));
                }
                else if (blue != 0 && red == 0 && green == 0)
                {
                    channelView.setBlueChannel(image, setBlueChannel(rgbImage));
                }
                else
                {
                    channelView.setFilteredChannelImages(image, setRedChannel(rgbImage), setGreenChannel(rgbImage), setBlueChannel(rgbImage));
                }
            }
            else
            {
                throw new Exception();
            }

            this.redoBuffer.clearBuffer();
        }