Create Your First Project
Start adding your projects to your portfolio. Click on "Manage Projects" to get started
Photo Editor
Github
This program may take in a ".ppm", ".png", ".jpg", or ".bmp" image file, and may conduct certain operations on the image before saving. First, take in the image and load it. Then, conduct any operations of the following on the image: brighten, darken, vertical flip, horizontal flip, value component, intensity component, luma component, red component, green component, blue component, blur, sharpen, greyscale, or sepia. Lastly, save the file either overriding the original file, or creating a new one. The commands for all these operations will be listed in the USEME.txt file in the root folder.
When you load an image, the program stores that image in memory with the specified name. What this means is that multiple images may be stored in memory in one concurrent run, and may have different operations conducted on them.
Design: At a higher level, the program contains interfaces for the ImageEditor controller, model, state, and view. These interfaces are implemented in the SimpleImageEditor controller, model, and view. The model runs the actual operations on the saved images in memory. The controller runs the program by accepting inputs and using the model. The controller also handles all inputs and outputs for the program. The view handles the outputs to the user, such as the text feedback in the command line. The ImageEditorState is used within the SimpleImageView class in order to limit the accessibility of the model when being used by the view. For example, the view does not need to conduct operations on the model, so there is no need to give it access to those methods. The Component class is an enum and used when determining the type of component to show (whether it is the red, green, blue, luma, intensity, or value component). The Pixel class represents one pixel with values of RGB. Lastly, included are test files for all the components of the program. All parts of this program as detailed by the assignment documentation have been completed and work as they are intended to.