小编典典

调整图像大小以适合JLabel

java

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

阅读 196

收藏
2020-09-28

共1个答案

小编典典

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

当心,这将缩放图像,使其为正方形。看一看Java:维护JPanel背景图像的长宽比,讨论缩放后图像的长宽比。

此外,您还应该阅读Image.getScaledInstance()的风险,并查看将ImageIcon自动缩放为标签大小演示了这样做的问题一步一步的规模…

2020-09-28