Следующий код берет Image
из двух ImageIcon
с и создает новый ImageIcon
.
Изображение со второго ImageIcon
рисуется поверх изображения с первого, затем полученное изображение используется для создания нового ImageIcon
:
Image img1 = imageIcon1.getImage();
Image img2 = imageIcon2.getImage();
BufferedImage resultImage = new BufferedImage(
img1.getWidth(null), img1.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics2D g = resultImage.createGraphics();
g.drawImage(img1, 0, 0, null);
g.drawImage(img2, 0, 0, null);
g.dispose();
ImageIcon resultImageIcon = new ImageIcon(resultImage);
Редактировать
(Исправлены некоторые ошибки, добавлена поддержка прозрачности.)
Для обеспечения прозрачности можно использовать BufferedImage.TYPE_INT_ARGB
для типа изображения в конструкторе, а не BufferedImage.TYPE_INT_RGB
, у которого нет альфа-канала.