java - 如何将多个PNG组合成一个大的PNG文件?

标签 java image scala image-processing png

我有大约。 6000 个 PNG 文件(256*256 像素),并希望以编程方式将它们组合成一个大的 PNG。

最好/最快的方法是什么?

(目的是在纸上打印,所以不能使用一些网络技术,只有一个单一的图片文件可以消除许多使用错误。)

我尝试了 fahd 的建议,但是当我尝试创建一个宽 24576 像素、高 15360 像素的 BufferedImage 时,我得到了一个 NullPointerException。有什么想法吗?

最佳答案

创建一个您将写入的大图像。根据您想要的行数和列数计算其尺寸。

    BufferedImage result = new BufferedImage(
                               width, height, //work these out
                               BufferedImage.TYPE_INT_RGB);
    Graphics g = result.getGraphics();

现在循环浏览您的图像并绘制它们:

    for(String image : images){
        BufferedImage bi = ImageIO.read(new File(image));
        g.drawImage(bi, x, y, null);
        x += 256;
        if(x > result.getWidth()){
            x = 0;
            y += bi.getHeight();
        }
    }

最后写入文件:

    ImageIO.write(result,"png",new File("result.png"));

关于java - 如何将多个PNG组合成一个大的PNG文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3922276/

相关文章:

java - ASN.1 Java 编译器

html - 如何使图像在 flex 容器中占据最大空间?

html - IE 在 div 中仅显示 1 个背景图像 div

eclipse(设置scala环境): object apache is not a member of package org

scala - 如何克服scala NoSuchMethodError?

java - Grails 分页问题

带有内联缩略图的java文件选择器

java - 是否可以对两个EditText使用[按钮禁用控件的TextWatcher]?

scala - Janusgraph - 检查和获取两个顶点之间的边缘的有效方法

wpf - 为什么我的 ImageSource 绑定(bind)没有更新?