繁体   English   中英

如何增加tiff图像的大小(高度和宽度)和DPI

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM