With my project, I wish to create a paint program. This paint program would load allow users to load into either a blank canvas of user-defined size or open an already existing PNG image and edit it. There would be various tools that you'd expect to see within a paint program, such as:
- Paint bucket fill
- Paint brush, with varying sizes
- Pencil tool
- Shape tool, filled or hollow
- Some sort of layering system
Finally, the program would allow you to save this PNG image back to file.
Within this class we have worked with cinder and I have had experience with a similar library, SFML, in my own independent study. With the Naive-bayes assignment I had to implement a very simplistic "paint" functionality for the classifier that mirrors what I would like to do with my project. Furthermore, within my CS225 class we work with PNG images and various image editing techniques.
With Week 1 I wish to have implemented:
- Basic cinder functionality
- Basic tool GUI
- Pencil tool
- A layering system
With Week 2 I wish to have implemented:
- Paint bucket tool
- Paint brush tool
- Shape tool
With Week 3 I wish to have implemented:
- Finalize tool GUI
- Loading images from file
- Saving edited images to file
If I were to finish early, some potential avenues to explore would be:
- Multiple file format support (jpg, gif, etc.)
- Layering system transparency
- Selection tools, with move, copy and paste