调整图像大小以适应jlabel

yhived7q  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(450)

我正在尝试从目录中加载一个图像,并将其作为图标放置在 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);
htrmnn0y

htrmnn0y1#

BufferedImage img = ImageIO.read(...);
Image scaled = img.getScaledInstance(500, 500, Image.SCALE_SMOOTH);
ImageIcon icon = new ImageIcon(scaled);

注意,这将缩放图像,使其呈方形。看看java:Maintening aspect ratio of jpanel background image,它讨论了在缩放时保持图像的纵横比。
此外,您还应该阅读image.getscaledinstance()的危害,并了解如何自动将图像图标缩放到标签大小,该标签使用了分而治之的缩放算法,并且在调整大小后图像质量非常低--java演示了一步缩放的问题。。。

相关问题