【发布时间】:2015-07-24 23:13:53
【问题描述】:
对于我的一个项目,我发现有必要将给定的颜色值 int[] 保存为 png 文件。 png 将表示由颜色值表示的瓦片地图。 BufferedImage 的生成和保存过程已经很好了。
public BufferedImage getTileImage() {
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
image.setRGB(j, i, tiles[j+i*width].getType());
}
}
return image;
}
public void safeMap(String mapname) {
File file = new File("res/maps/"+mapname+".png");
try {
ImageIO.write(getTileImage(), "png",file );
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
当我将它导出为可执行的 JAR 文件时,就会出现问题,因为 ImageIO.write() 方法似乎无法与 JAR 文件中的相对路径一起正常工作。 (我的猜测是你只能在结构内部读取,不能写入)
什么是解决这个问题的好方法?有没有办法在不使用外部资源文件夹的情况下实现这一点?
【问题讨论】:
-
您需要将其保存到 jar 中还是临时文件夹就足够了?
-
我希望它永久保存,目的是稍后在多人游戏中使用它来在玩家之间转移不同的地图。不过,一个临时文件夹将是一个好的开始。
标签: java executable-jar