Управление изображениями в Java может быть достигнуто с помощью контекстов Graphics
или Graphics2D
.
Загрузка изображений, таких как JPEG и PNG, может выполняться с использованием класса ImageIO
. Метод ImageIO.read
принимает File
для чтения и возвращает BufferedImage
, который можно использовать для манипулирования изображением через Graphics2D
(или Graphics
, его суперкласс) контекст.
Контекст Graphics2D
может использоваться для выполнения многих задач рисования и манипулирования изображениями. Для информации и примеров, Trail: 2D Graphics из Java Tutorials было бы очень хорошим началом.
Ниже приведен упрощенный (непроверенный) пример, который откроет файл JPEG и нарисует несколько кругов и линий (исключения игнорируются):
// Open a JPEG file, load into a BufferedImage.
BufferedImage img = ImageIO.read(new File("image.jpg"));
// Obtain the Graphics2D context associated with the BufferedImage.
Graphics2D g = img.createGraphics();
// Draw on the BufferedImage via the graphics context.
int x = 10;
int y = 10;
int width = 10;
int height = 10;
g.drawOval(x, y, width, height);
g.drawLine(0, 0, 50, 50);
// Clean up -- dispose the graphics context that was created.
g.dispose();
Приведенный выше код откроет изображение в формате JPEG и нарисует овал и линию. Когда эти операции выполняются для манипулирования изображением, BufferedImage
может обрабатываться как любой другой Image
, так как это подкласс Image
.
Например, создав ImageIcon
с помощью BufferedImage
, можно встроить изображение в JButton
или JLabel
:
JLabel l = new JLabel("Label with image", new ImageIcon(img));
JButton b = new JButton("Button with image", new ImageIcon(img));
Оба JLabel
и JButton
имеют конструкторы, которые принимают ImageIcon
, так что это может быть простым способом добавить изображение в компонент Swing.