小编Ick*_*cki的帖子

内存不足问题,保存大型BufferedImage

我在保存大型(12 000 x 9 000)图像方面遇到了问题.

我正在开发一个图形编辑软件(类似于简单的Photoshop),用户显然必须能够保存图像.

让我们说我想将图像保存为.png.JAVA总是需要使用BufferedImage来保存绘制的东西吗?

我知道图像大小的等式是:Xsize*Ysize*4(红色,绿色,蓝色,alpha)所以在这种情况下,我们得到超过400 MB.

我知道我可以将图像保存在部分(图块)中,但用户必须以某种方式合并它们.

有没有其他方法可以在不使用BufferedImage的情况下保存这么大的图像?

保存图片的代码:

 public static void SavePanel() {

    BufferedImage image = null;
    image =  new BufferedImage(
            (int) (Main.scale * sizeX ),
            (int) (Main.scale * sizeY ),
            BufferedImage.TYPE_INT_RGB);

    g2 = image.createGraphics();
    panel.paint(g2);


    try {
        ImageIO.write(image, "png", new File(FactoryDialog.ProjectNameTxt.getText() + ".png"));
    } catch (IOException e) {
    }


}
Run Code Online (Sandbox Code Playgroud)

先感谢您 !

java bufferedimage image save

7
推荐指数
1
解决办法
2602
查看次数

标签 统计

bufferedimage ×1

image ×1

java ×1

save ×1