【发布时间】:2017-03-08 09:41:37
【问题描述】:
我是一名 Java 初学者,试图将 .PNG 8356 x 5092 像素加载到 JFrame 720 x 600 中。
我可以加载图像,但它被缩放到左上角,想要使.PNG 适合 JFrame,然后能够通过鼠标单击跨越并通过鼠标滚动进行缩放。
我一直在寻找答案大约 2 周,但无济于事。 只是想向正确的方向好推...
干杯
编辑
好的,我可以通过以下方式加载图像并按比例缩放:
public Image ScaledImage(Image img, int w, int h) {
BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = resizedImg.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.drawImage(img, 0, 0, w, h, null);
g2.dispose();
return resizedImg;
}
并将其传递给 JLabel,例如:
BufferedImage Map = ImageIO.read(new File(.PNG-LOCATION));
ImageIcon icon = new ImageIcon(ScaledImage(Map, 720, 600));
JLabel Label = new JLabel();
Label.setIcon(icon);
现在只需要缩放方面的帮助或指导,点击拖动
感谢您的帮助
【问题讨论】:
-
您是否尝试过调整 PNG 的大小?
-
不,我没有,因为我不知道从哪里开始
-
您可以从查找“resize bufferedimage java”开始,这可能会或可能不会导致您得到这个答案:stackoverflow.com/questions/9417356/bufferedimage-resize
-
Bufferedimage resize的可能重复
标签: java bufferedimage mouselistener mousewheel zooming