首页 > 解决方案 > 编写大图像精灵表

问题描述

我正在尝试通过将动画周期组合到一个图像中并将其写入一个图像来制作一个 Sprite 表。但是,我得到了这个例外:“支持的最大图像尺寸为 65500 像素”。这是2个问题。

1.) 65500 像素的图像尺寸是多少?这是否意味着尺寸(宽度或高度)需要低于 65500,或者总面积(宽度*高度)需要低于 65500 像素?

2.)有没有办法解决这个问题?我需要一个宽度:426,667 像素和高度:240 像素(总面积为 102,400,000 像素)的精灵表。现在我将它保存为 jpeg 文件。写入不同的文件类型是否有不同的尺寸限制?

这是我的代码:

int length = 1000;
BufferedImage sheet = new BufferedImage(1280*length/3, 720/3, 
BufferedImage.TYPE_INT_RGB);
for(int i = 0; i < length; i++) {
    String path = i+".jpg";
    try {
        load = ImageIO.read(getClass().getResourceAsStream(path));
        sheet.getGraphics().drawImage(load, i*1280/3, 0, null);
    }catch (IOException e) {
        System.out.println("Failed to load "+path);
        e.printStackTrace();
    }
}
try {
    ImageIO.write(sheet, "jpg", new File("spriteSheet"));
} catch (IOException e) {
    System.out.println("Failed to write spriteSheet.");
    e.printStackTrace();
}
this.stop();

标签: javax.imageiosprite-sheet

解决方案


推荐阅读