Implemented Java version of CanvasImageObject
Implemented refactoring to separate concerns and make adding new filters and effects easier