我在保存大型(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)
先感谢您 !