将多页TIFF图像拆分为单个图像(Java)

在这一个上撕裂了我的头发.

如何将多页/多层TIFF图像分割成多个单独的图像?

演示图像可用here.

(更喜欢纯Java(即非本机)解决方案.如果解决方案依赖于商业库,则无关紧要.)

解决方法:

您可以使用Java Advanced Imaging库JAI通过使用ImageReader拆分多版本TIFF:

ImageInputStream is = ImageIO.createImageInputStream(new File(pathToImage));
if (is == null || is.length() == 0){
  // handle error
}
Iterator<ImageReader> iterator = ImageIO.getImageReaders(is);
if (iterator == null || !iterator.hasNext()) {
  throw new IOException("Image file format not supported by ImageIO: " + pathToImage);
}
// We are just looking for the first reader compatible:
ImageReader reader = (ImageReader) iterator.next();
iterator = null;
reader.setInput(is);

然后你可以得到页数:

nbPages = reader.getNumImages(true);

并分别阅读页面:

reader.read(numPage)
上一篇:java – 递归泛型


下一篇:如何从ImageIO中排除特定的TIFF阅读器?