按顺序合并图片

时间:2012-10-13 13:31:17

标签: java bufferedimage

我正在尝试制作某种地图制作者,使用旧版2D游戏,如“最终幻想4”。基本上,他们在网格中设置了所有内容,网格上的每个正方形可能采用16x16或32x32像素。

我想从小开始,首先得到主要的东西。例如生成一个可能是128x128的地图。这意味着,我应该能够为程序提供一个表示可用的不同图块的数字数组,然后程序应该通过放置数组指定的图块来创建一个新图片(因此索引0中的一个将被放置在0,0等)。

我计划在完成后展示图片,但这应该很容易就像馅饼一样。

我一直在寻找一个解决方案,而且我所能找到的只是将图片合并在一起(就像在彼此的顶层),而不是并排,所以任何人都可以指向我正确的方向?如果我不必依赖第三方库,我会喜欢它,因为这比实际应用更多的是学习经验:)

1 个答案:

答案 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);