【发布时间】:2011-10-05 05:39:34
【问题描述】:
我在保存大型(例如 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) {
}
}
提前谢谢你!
【问题讨论】:
标签: java image save bufferedimage