public void applyInvertFilter() { Bitmap image; if (imageModel.getFilteredImage() != null) { image = imageModel.getFilteredImage(); } else { image = imageModel.getBaseImage(); } this.undoBuffer.push(image); if (FilterController.Invert(image)) { imageModel.setFilteredImage(image); baseView.setBaseImageFromBitmap(image); imageModel.setCIEImage(setCIEImage(image)); RGBModel[,] rgbImage = convertToRGB(imageModel.getCIEImage()); histogramView.setBaseImage(imageModel.getFilteredImage()); channelView.setFilteredChannelImages(image, setRedChannel(rgbImage), setGreenChannel(rgbImage), setBlueChannel(rgbImage)); } else { throw new Exception(); } this.redoBuffer.clearBuffer(); }