forgetlosing 0 Newbie Poster

I am currently doing project where i need to let user mark portions of any inputed image.
The markings could be in different shapes like square, rect, circle, irregular etc.
I should be able to remember the markings and later on reproduce them on the same image when asked to.
Also i need to generate the bit map of those portions of images
What language do you suggest?
I want to choose a language that is rich in libraries to handle images and enable me to do this stuff?
How does Java help? Eg: libraries etc.
Also are there any pre existing open source projects that handle images so that i can use that code?
Any help would be appreciated.