繁体   English   中英

如何将ImageIcon转换为图像?

[英]How to convert ImageIcon to Image?

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

 icon = new ImageIcon(ViewDetailsV.class.getResource("/brandnew/images/male_avatar.jpg"));

然后,我想放入此行,以便将其大小调整为标签的大小:

lblPhotoField.setIcon(new ImageIcon(ScaledImage(icon, lblPhotoField.getWidth(), lblPhotoField.getHeight()));

但是我需要“图标”作为图像,而不是图像图像,因为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;
}

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

 lblPhotoField.setIcon(icon);

使用ImageIcon#getImage方法...

ScaledImage(icon.getImage(), lblPhotoField.getWidth(), lblPhotoField.getHeight())

除非你设置lblPhotoField的大小你自己(其自身令人担忧)或它已经布局,我不会依赖于getWidth()getHeight()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM