The brushes currently implemented are working fine for most cases but are not optimized very good.
If you want to dig into how to improve this feel free to do so
Just pick one issue of the ones I listed and try to improve it
On every draw event, the image is cloned, then we iterate over the pixels and
at last we swap the images. This can be improved by:
Processing multiple draw events at once instead of one by one
When running the image, we always have a version of the image loaded ready to be edited in memory. This would remove the cloning
The airbrush is currently not working great. It is supposed to draw the strongest in the middle and weakens further away
I don't know how to improve this but seems doable by trying and reading a bit about it
Implement a redo function for brushes.
every brush would need to have a reverse function that we can than apply to the image
Another way would be to buffer the last 5 or so images we changed. This could be fine even though we have to be carefully with mem usage
The Problem
The brushes currently implemented are working fine for most cases but are not optimized very good. If you want to dig into how to improve this feel free to do so Just pick one issue of the ones I listed and try to improve it