이 작업을 수행하기위한 컴퓨터 메모리가 있으면 좋겠습니다. TIFF 이미지 파일이 큽니다.
올바른 작업을 수행하려면 Java Advanced Imaging (JAI) API를 사용해야합니다.
먼저 TIFF 이미지를 java.awt.image.BufferedImage으로 변환해야합니다. 아마 작동 할 몇 가지 코드가 있습니다. 나는이 코드를 테스트하지 않았다.
BufferedImage image[] = new BufferedImage[numImages];
for (int i = 0; i < numImages; i++) {
SeekableStream ss = new FileSeekableStream(input_dir + file[i]);
ImageDecoder decoder = ImageCodec.createImageDecoder("tiff", ss, null);
PlanarImage op = new NullOpImage(decoder.decodeAsRenderedImage(0), null, null, OpImage.OP_IO_BOUND);
image[i] = op.getAsBufferedImage();
}
그런 다음 BufferedImage 배열을 다시 여러 TIFF 이미지로 변환합니다. 나는이 코드도 테스트하지 않았다.
TIFFEncodeParam params = new TIFFEncodeParam();
OutputStream out = new FileOutputStream(output_dir + image_name + ".tif");
ImageEncoder encoder = ImageCodec.createImageEncoder("tiff", out, params);
Vector vector = new Vector();
for (int i = 0; i < numImages; i++) {
vector.add(image[i]);
}
params.setExtraImages(vector.listIterator(1)); // this may need a check to avoid IndexOutOfBoundsException when vector is empty
encoder.encode(image[0]);
out.close();
행운을 빈다.
이 Java 이미지 라이브러리 (https://github.com/dragon66/icafe)를 사용하면 두 개 또는 여러 개의 TIFF 이미지를 쉽게 병합 할 수 있습니다. 또한 이미지를 디코딩 할 필요가 없으며 다중 페이지 TIFF도 병합 할 수 있습니다. – dragon66