Я пишу веб-приложение, которое позволяет пользователю загружать изображения в нескольких форматах (например, png, jpg, bmp). После загрузки изображения система должна преобразовать его в «png» и масштабировать до предварительно определенного разрешения.
Для преобразования изображения я использую удобный метод:
javax.imageio.ImageIO.write(im, type, baos);
Вот здесь и начинается проблема. Первым аргументом Image javax.imageio.ImageIO.write является RenderedImage . Документ Java утверждает, что единственной известной реализацией является BufferedImage .
Я пытаюсь найти способ конвертировать java.awt.Image в BufferedImage, но это не представляется возможным. Однако можно нарисовать изображение на BufferedImage .
Проблема в том, что создание нового BufferedImage каждый раз очень дорого обходится памяти. Я могу начать создавать пул BufferedImage, но я ищу умные / новостные идеи.