我正在尝试从目录中加载一个图像,并将其作为图标放置在 JLabel
. 但是,当图像尺寸较大时,它不能完全适合标签。我试图调整图像大小以适应标签,但它不起作用。我能知道我哪里出错了吗?
JFileChooser choose=new JFileChooser();
choose.showOpenDialog(null);
File f=choose.getSelectedFile();
String filename=f.getAbsolutePath();
path.setText(filename);
ImageIcon icon=new ImageIcon(filename);
Image img=icon.getImage();
BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics g = bi.createGraphics();
g.drawImage(img,500, 500, null);
ImageIcon newIcon = new ImageIcon(bi);
image_label.setIcon(newIcon);
1条答案
按热度按时间htrmnn0y1#
注意,这将缩放图像,使其呈方形。看看java:Maintening aspect ratio of jpanel background image,它讨论了在缩放时保持图像的纵横比。
此外,您还应该阅读image.getscaledinstance()的危害,并了解如何自动将图像图标缩放到标签大小,该标签使用了分而治之的缩放算法,并且在调整大小后图像质量非常低--java演示了一步缩放的问题。。。