javax.imageio - 编写大图像精灵表
问题描述
我正在尝试通过将动画周期组合到一个图像中并将其写入一个图像来制作一个 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();
解决方案
推荐阅读
- iphone - Apple Mail iOS 15.0.2 在包含文本的图像上显示文本
- json - VBA 将模块序列化为 JSON
- c++ - 使用 wasapi 同时从麦克风和扬声器录制
- javascript - 如何制作这种效果(滚动视差)?
- firebase - 使用 indexdb 的后台同步发送数据 serviceWorker
- html - 具有半透明 100% div 和居中文本的 CSS 网格
- javascript - 用于类方法时,箭头函数和常规函数有什么区别?
- woocommerce - woocommerce 不显示某些产品的描述
- powershell - 使用 Powershell 中带有反斜杠的 -replace 替换 Windows 目录路径
- python - Python InfluxDB2 - write_api.write(...) 如何检查是否成功?