如何将ImageIcon转换为图像?

Tae*_*on. 2 java swing image imageicon

我从我的项目src文件中抓取了imageicon,如下所示:

 icon = new ImageIcon(ViewDetailsV.class.getResource("/brandnew/images/male_avatar.jpg"));
Run Code Online (Sandbox Code Playgroud)

然后我想放入这一行,以便调整大小到标签的大小:

lblPhotoField.setIcon(new ImageIcon(ScaledImage(icon, lblPhotoField.getWidth(), lblPhotoField.getHeight()));
Run Code Online (Sandbox Code Playgroud)

但我需要"图标"作为图像,而不是图像图像,因为ScaledImage采用Image参数而不是ImageIcon.

 private Image ScaledImage(Image img, int w, int h){
    BufferedImage resizedImage = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);

    Graphics2D g2 = resizedImage.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g2.drawImage(img, 0,0,w,h,null);
    g2.dispose();
    return resizedImage;
}
Run Code Online (Sandbox Code Playgroud)

是的,我确实尝试将返回值更改为ImageIcon,但它给了我错误.所以我现在专注于如何将ImageIcon转换为Image,这样我就可以将它放在方法行中,获取图标并将我的标签设置为:

 lblPhotoField.setIcon(icon);
Run Code Online (Sandbox Code Playgroud)

Mad*_*mer 7

使用ImageIcon#getImage方法......

ScaledImage(icon.getImage(), lblPhotoField.getWidth(), lblPhotoField.getHeight())
Run Code Online (Sandbox Code Playgroud)

除非您设置的大小lblPhotoField你自己(这在它的自我是令人担忧的),或者它已经被解雇了,我不会依靠getWidth()getHeight()