Объединить или "склеить" изображения в java.
Имеется 30 фотографий в формате .png (это фотографии с ресурса api.nasa.gov за месяц). Нужно в java объединить, т.е. "склеить" их в одну картинку вертикально, т.е. одну под другой. Мой код позволяет "склеить" только максимум три фотографии. К сожалению, придумать код, который "склеивает" все тридцать фотографий (а не три) мне не удалось. Если кто-то подскажет, как поправить мой код, буду очень благодарен. Спасибо. Вот мой код:
class JoinedImages {
public static void joinedImages() throws IOException {
// Объединяем все фото в одну картинку
int rows = 3;
int cols = 1;
int chunks = rows * cols;
int chunkWidth, chunkHeight;
int type;
File[] imgFiles = new File("NASA_Photos_Of_Month").listFiles();
// Создаем BufferedImage массив из имеющихся в списке фотографий
BufferedImage[] buffImages = new BufferedImage[chunks];
for (int i = 0; i < chunks; i++) {
assert imgFiles != null;
buffImages[i] = ImageIO.read(imgFiles[i]);
}
type = buffImages[0].getType();
chunkWidth = buffImages[0].getWidth();
chunkHeight = buffImages[0].getHeight();
// Инициализируем finalImg
BufferedImage finalImg = new BufferedImage(chunkWidth * cols, chunkHeight * rows, type);
int num = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
finalImg.createGraphics().drawImage(buffImages[num], chunkWidth * j, chunkHeight * i, null);
num++;
}
}
System.out.println("Изображения объединены в папке 'Joined_Images', файл 'Joined_Photos.png'");
ImageIO.write(finalImg, "png", new File("Joined_Images\\Joined_Photos.png"));
}
}