I'm writing a Web application that let user upload images in several formats (e.g. png,jpg,bmp). After the image has been uploaded the system should convert it to "png" and scale it to a predefined resolution.
To convert the image I use the handy method:
javax.imageio.ImageIO.write(im, type, baos);
Here's where the problem start. The first argument of Image javax.imageio.ImageIO.write is a RenderedImage. The Java Doc states that the only known implementation is BufferedImage.
I try to find a way to convert a java.awt.Image to a BufferedImage, but it doesn't seems possible. However, it is possible to draw an image on a BufferedImage.
The problem is that creating a new BufferedImage each time is very memory expensive. I can start creating a pool of BufferedImage but I'm looking for clever/news ideas.