我希望你有計算機內存來做到這一點。 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 2014-10-09 16:22:12