Динамическое создание и рендеринг изображения с прозрачным фоном для использования с drawImage - PullRequest
0 голосов
/ 03 мая 2010

Может ли кто-нибудь привести пример того, как динамически создать изображение в Java, нарисовать на нем линии и так далее, а затем нарисовать изображение, чтобы неокрашенные области оставались прозрачными в процессе рисования?

1 Ответ

5 голосов
/ 03 мая 2010

Можно использовать BufferedImage с типом изображения, поддерживающим прозрачность, например BufferedImage.TYPE_INT_ARGB:

BufferedImage img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);

Можно нарисовать BufferedImage, вызвав BufferedImage.createGraphics, чтобы получить Graphics2D объект, затем выполнить некоторое рисование:

BufferedImage img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);

Graphics2D g = img.createGraphics();
g.drawLine(0, 0, 10, 10);  // draw a line.
g.dispose(); 

Тогда, поскольку BufferedImage является подклассом Image, который можно использовать для рисования на другом Image, используя один из Graphics.drawImage, который принимает Image.

...