我有5张单页tiff图片。我想将所有这5张tiff图片合并为一张多页tiff图片。我正在使用Java Advanced Imaging
API。我已经阅读了SUN提供的JAI
API文档和教程。我是JAI的新手。我知道Java的基本核心。我不了解SUN提供的这些文档和资料。所以,朋友们请告诉我如何将5个tiff图像文件合并为一个多页tiff图像。请给我一些有关上述主题的指导。我一直在互联网上搜索上述主题,但没有任何线索。所以请引导我的朋友们。
提前致谢。
我希望您有计算机内存可以执行此操作。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();
祝好运。
问题内容: 一直在撕我的头发。 如何将多页/多层TIFF图像分成几个单独的图像? 演示图像在这里。 (宁愿使用纯Java(即非本机)解决方案。该解决方案是否依赖于商业库也没关系。) 问题答案: 您可以使用 Java高级映像 库JAI通过使用ImageReader分割多页TIFF: 然后,您可以获得页面数: 并分别阅读页面:
问题内容: 我想更改多页TIFF图像的高度,所以我在下面的代码段中进行缩放。但是它仅从tiff文件返回第一页,我想它会将其转换为JPEG图像。如何保留文件的所有页面? 更新的代码: 问题答案: 只会写入单个独立映像。将多个图像写入同一输出流并不能解决此问题。但是,ImageIO软件包完全支持您所需的内容,只需要更多代码即可。 使用以下命令获取适用于TIFF格式的格式: 有关更多信息,请参见Imag
我正在寻找帮助开发(或一个库),可以让我合并在一起的多个图像到一个ImageView。 我的应用程序将用户之间的交互组合在一起,而不是单独地显示它们,因此我希望合并它们的所有化身,这样一个适配器单元格就可视化了一个“组”。 Facebook.com的聊天就是一个很好的例子: 我的问题是,我如何在Android/Java中提供这个功能?据推测,它的图像数量可能介于1到4之间。请告诉我您能给出的任何建
我需要压缩一个有几个灰色16bit图像(多页)的tif文件。我已经尝试使用ImageIO如下所示:使用Java ImageIO进行Tiff压缩最初,tif文件中的每个图像都来自另一个Tiff文件。当我想使用压缩机时,我有以下选项: null
问题内容: 我正在尝试搜索我正在构建的Django网站,在该搜索中,我正在搜索3种不同的模型。为了在搜索结果列表上进行分页,我想使用一个通用的object_list视图来显示结果。但是要做到这一点,我必须将3个查询集合并为一个。 我怎样才能做到这一点?我已经试过了: 但这是行不通的。当我尝试在通用视图中使用该列表时出现错误。该列表缺少克隆属性。 有谁知道我如何合并三个列表和? 问题答案: 将查询集
问题内容: 我尝试了以下代码来完成读取和写入tiff图像的任务: 但是,当我运行代码时,出现以下错误消息: 知道如何解决这个问题吗? 问题答案: 读取TIFF并输出BMP的最简单方法是使用ImageIO类: 要使此功能正常工作,您唯一需要做的另一件事是确保已将JAI ImageIO JAR添加到类路径中,因为如果没有此库中的插件,JRE不会处理BMP和TIFF。 如果由于某种原因不能使用JAI I