使用java仅显示图像的一部分

时间:2011-12-15 21:26:14

标签: java image graphics sprite

如果我有一个由网格中25 x 25个较小图像组成的大图像。如何使用java仅显示较大网格的一部分(例如绘制一个以125,25开头并以150,50结尾显示的部分)?

2 个答案:

答案 0 :(得分:3)

我将图像分解为较小的图像,将较小的图像单元放入自己的ImageIcons中,然后在JLabel中显示我想要的任何图标,可能是其中的几个。 BufferedImage#getSubimage(...)可以帮助您将大图像分解为较小的图像。

(决定回答)

答案 1 :(得分:2)

如果您不需要子图像的物理副本并且只需要显示它,那么您可以将图像添加到JLabel,您可以将其添加到JScrollPane而不使用任何滚动条。将scrollpane的preferredSize()设置为等于子图像的尺寸(25x25)。然后你可以使用

scrollPane.getViewport().setViewPosition(...);

将视口定位为显示任何子图像。