gpt4 book ai didi

java - 将图像大小调整为从 Swing 应用程序中的文件选择器动态获取的 JLabel 的大小

转载 作者:行者123 更新时间:2023-12-01 11:25:43 25 4
gpt4 key购买 nike

我通过文件选择器动态上传图像,但图像不适合 JLabel 的大小。如何解决?

public void image()
{

fileChooser.setCurrentDirectory(new File("."));
fileChooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
@Override
public boolean accept(File f) {
return f.getName().toLowerCase().endsWith(".jpg")|| f.isDirectory();
}
@Override
public String getDescription() {
return "JPG Images";
}
});
int r = fileChooser.showOpenDialog(new JFrame());
ImageIcon ico=new ImageIcon(fileChooser.getSelectedFile().getAbsolutePath());
UpImage.setIcon(ico);
file = fileChooser.getSelectedFile();

try {
fis = new FileInputStream(file);
} catch (FileNotFoundException ex) {
Logger.getLogger(EntryEmp.class.getName()).log(Level.SEVERE, null, ex);
}
}

最佳答案

使用您的 JFileChooser 捕获图像,如下所示:

BufferedImage image = ImageIO.read(fileChooser.getSelectedFile());  

现在计算 JLabel 的宽度和高度,并将其发送到方法 resizeImage(BufferedImage image, int width, int height)resizeImage 方法的代码如下。

// This method resizes the BufferedImage to specified width and height.
// Returns an ImageIcon object.
private ImageIcon resizeImage(BufferedImage image, int width, int height) {

// image - BufferedImage object of your file selected
// width - Width of your JLabel
// height - Height of yout JLabel

// Creating a temporary Image of your desired size.
BufferedImage tempImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D gr = tempImg.createGraphics();

g.drawImage(image, 0, 0, width, height, null); // Draw the selected image on the tempImage from co-ordinates (0, 0) to (width, height) of the tempImage.
g.dispose(); // Clear resources.

return new ImageIcon(tempImage);
}

就是这样。现在您所要做的就是:

label.setIcon(image);  

希望这有帮助:)

关于java - 将图像大小调整为从 Swing 应用程序中的文件选择器动态获取的 JLabel 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30815828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com