我正在尝试使图片适合 JLabel。我希望将图片尺寸减小到更适合我的 Swing JPanel 的尺寸。
我尝试使用 setPreferredSize 但它不起作用。
我想知道是否有一种简单的方法可以做到这一点?我应该为此目的缩放图像吗?
最佳答案
大纲
以下是要遵循的步骤。
- 将图片作为 BufferedImage 读取。
- 将 BufferedImage 调整为另一个与 JLabel 大小相同的 BufferedImage。
- 从调整大小的 BufferedImage 创建一个 ImageIcon。
您不必设置 JLabel 的首选大小。将图像缩放到所需大小后,JLabel 将采用 ImageIcon 的大小。
将图片读取为 BufferedImage
BufferedImage img = null;
try {
img = ImageIO.read(new File("strawberry.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
调整 BufferedImage 的大小
Image dimg = img.getScaledInstance(label.getWidth(), label.getHeight(),
Image.SCALE_SMOOTH);
确保标签宽高与原图宽高比例一致。换句话说,如果图片是 600 x 900 像素,则缩放到 100 X 150。否则,您的图片会失真。
创建一个 ImageIcon
ImageIcon imageIcon = new ImageIcon(dimg);
关于java - 调整图片大小以适合 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16343098/