使用Java中的BufferedImage查看大图像大小

时间:2012-08-03 06:47:22

标签: java image

我目前有一个图像,我作为BufferedImage加载到程序中。这个BufferedImage放在一个具有固定大小的JPanel类中。

现在我遇到的问题是如何在这个固定大小的JPanel中平移这个大的BufferedImage。

JPanel尺寸肯定小于图像。

谢谢!

1 个答案:

答案 0 :(得分:3)

首先,将一些滚动条附加到JPanel(南部和东部,使用BorderLayout),只有在图像太大和/或太高时才会显示。在剩余空间(中心)附加另一个JPanel。在内部JPanel中,您将覆盖paintComponent方法,并将BufferedImage的部分绘制到JPanel中。使用滚动条的偏移量来偏移图像,使用内部JPanel绘制宽度和高度(视口)。

注意:只要价值发生变化,您的滚动条就会调用内部repaint的{​​{1}}方法。

只要需要重新绘制图像,系统就会自动(或手动)调用JPanel。这样,您就可以自定义为图像提供的视图(如果需要这样的功能);旋转,缩放,像素操作,自定义叠加等。

您还可以将一些MouseMotionListener附加到内部paintComponent并根据鼠标移动修改滚动条的偏移(修改滚动条将自动触发图像上的重绘)以进行鼠标交互你的组件。只是一个想法。