In this lab, you will be writing a software application called The purpose of the program is to allow the user to apply different filters to an image. The user should first be prompted to enter a file name. That file should be loaded and displayed within the live view in Codespace’s simulated desktop. Then the user should be presented with a list of filters that can be applied. The program should update the view of the image each the user applies a different filter.

Your program should be capable of the following operations:

  1. Make Negative
  2. Make Grayscale
  3. Flip Vertically
  4. Scroll Horizontally
  5. Zoom
  6. Your choice of: Blur, Posterize, Increase Constrast, etc.

Below are examples of these filters applied to the crayons.jpg image that you will find among your repository files. In addition to applying these filters individually, your implementation should allow filters to accumulate on top of one another as you saw with Grayscale and Vertical Flip in the Warmup. Think about how you can make sure that the output from applying one filter can be used as the input to another.

Original Image

In the following parts of this lab, we will walk through the different filters that you will be implementing. Let’s begin by creating the menu that will control the flow of our program and respond to the user’s selections.