Как склеить программно 2 изображения?

Для склеивания двух изображений в Java можно использовать классы из библиотеки Java 2D. Основной класс, который занимается рисованием и манипуляцией с изображениями, это класс BufferedImage. Далее я расскажу, как выполнить эту задачу шаг за шагом.

1. Импортирование классов:

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

2. Чтение изображений:

BufferedImage image1 = null;
BufferedImage image2 = null;

try {
    image1 = ImageIO.read(new File("image1.jpg"));
    image2 = ImageIO.read(new File("image2.jpg"));
} catch (IOException e) {
    e.printStackTrace();
}

Убедитесь, что пути к изображениям указаны правильно.

3. Создание нового изображения с нужными размерами:

int width = image1.getWidth() + image2.getWidth();
int height = Math.max(image1.getHeight(), image2.getHeight());

BufferedImage resultImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

Здесь мы создаем новое изображение, которое будет иметь ширину равную сумме ширин двух изображений и высоту - максимальную из высот двух изображений.

4. Запись первого изображения на новое изображение:

Graphics2D g2d = resultImage.createGraphics();
g2d.drawImage(image1, 0, 0, null);
g2d.dispose();

Здесь мы используем графический контекст изображения, чтобы выполнить рисование. Метод drawImage() используется для рисования первого изображения на новом изображении.

5. Запись второго изображения на новое изображение:

g2d = resultImage.createGraphics();
g2d.drawImage(image2, image1.getWidth(), 0, null);
g2d.dispose();

В этом шаге мы рисуем второе изображение на новом изображении сдвигая его по горизонтали на ширину первого изображения.

6. Сохранение нового изображения:

try {
    ImageIO.write(resultImage, "jpg", new File("result.jpg"));
} catch (IOException e) {
    e.printStackTrace();
}

Здесь мы сохраняем новое изображение в файл с помощью метода write() из класса ImageIO. Убедитесь, что указываете правильное имя и путь к файлу.

Это примерный код, который можно использовать для склеивания двух изображений в Java. Помните, что он может быть изменен и доработан в зависимости от ваших конкретных требований.