[英]How to increase the size(height and width) and DPI of a tiff image
我将一组tiff图像合并为一个,同时希望在java中调整/调整最终tiff图像的大小。 有没有办法做到这一点 。 下面是我合并的逻辑。 我已成功合并,但无法增加高度和宽度。
ByteArrayOutputStream baos=new ByteArrayOutputStream();
//ImageEncoder encoder = ImageCodec.createImageEncoder("tiff", baos, params);
List<BufferedImage> imageList = new ArrayList<BufferedImage>();
for (int i = 1; i < images.size(); i++)
{
imageList.add(resizedImage);
}
params.setCompression(params.COMPRESSION_NONE);
params.setExtraImages(imageList.iterator());
TIFFField[] extras = new TIFFField[2];
extras[0] = new TIFFField(282, TIFFField.TIFF_RATIONAL, 1, (Object) new long[][] { { (long) 300, (long) 1 },
{ (long) 0, (long) 0 } });
extras[1] = new TIFFField(283, TIFFField.TIFF_RATIONAL, 1, (Object) new long[][] { { (long) 300, (long) 1 },
{ (long) 0, (long) 0 } });
params.setExtraFields(extras);
ImageEncoder encoder = ImageCodec.createImageEncoder("tiff", baos, params);
encoder.encode(images.get(0));
baos确实保存了我要转换为tiff的最终图像的字节
创建组合的TIFF图像的最终步骤
FileOutputStream fos = new FileOutputStream (new File(inputDir + "\\combined.tiff"));
baos.writeTo(fos);
但是如何增加高度和宽度。 请注意,我在运行时已经完成了Java代码中的所有操作
我会尝试一下,因为我不明白您在用tiffs做些什么:
List<BufferedImage> imageList = new ArrayList<BufferedImage>();
for (int i = 0; i < images.size(); i++)
{
BufferedImage b=new BufferedImage(1500, 1500, BufferedImage.TYPE_INT_RGB);
Graphics g=b.getGraphics();
g.drawImage(images.get(i), 0, 0, b.getWidth(), b.getHeight(), null);
imageList.add(b);
}
这会将图像从列表图像转换为大小1500、1500,并将它们存储在列表imageList中,然后使用列表创建tiff。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.