我希望您有计算机内存可以执行此操作。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]); ImageDeprer deprer = ImageCodec.createImageDeprer("tiff", ss, null); PlanarImage op = new NullOpImage(deprer.depreAsRenderedImage(0), null, null, OpImage.OP_IO_BOUND); image[i] = op.getAsBufferedImage();}然后,您将BufferedImage数组转换回多个TIFF图像。我也没有测试此代码。
TIFFEnpreParam params = new TIFFEnpreParam();OutputStream out = new FileOutputStream(output_dir + image_name + ".tif"); ImageEnprer enprer = ImageCodec.createImageEnprer("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 emptyenprer.enpre(image[0]); out.close();祝好运。



