我正在尝试制作某种地图制作者,使用旧版2D游戏,如“最终幻想4”。基本上,他们在网格中设置了所有内容,网格上的每个正方形可能采用16x16或32x32像素。
我想从小开始,首先得到主要的东西。例如生成一个可能是128x128的地图。这意味着,我应该能够为程序提供一个表示可用的不同图块的数字数组,然后程序应该通过放置数组指定的图块来创建一个新图片(因此索引0中的一个将被放置在0,0等)。
我计划在完成后展示图片,但这应该很容易就像馅饼一样。
我一直在寻找一个解决方案,而且我所能找到的只是将图片合并在一起(就像在彼此的顶层),而不是并排,所以任何人都可以指向我正确的方向?如果我不必依赖第三方库,我会喜欢它,因为这比实际应用更多的是学习经验:)
答案 0 :(得分:1)
首先,将输出BufferedImage
创建为您需要的大小。
BufferedImage image = new BufferedImage(width,height,imageType);
然后,从图像中获取Graphics2D
对象,并开始在结果图像中需要的位置绘制较小的图像:
Graphics2D g2 = image.createGraphics();
for (BufferedImage img : images) {
g2.drawImage(img, x, y, null);
}
然后,您可以将图像保存为所需的格式:jpg,png或gif。
ImageIO.write(image, "jpg", file);