我遇到了一个问题。我的图像太大,所以它扩大了相应的JMenuItem。我不想开发像
这样的自行车ImageIcon image = new ImageIcon(new ImageIcon("/home/template/img.jpg")
.getImage().getScaledInstance(32, 32, Image.SCALE_DEFAULT));
还有其他方法可以实现吗?
答案 0 :(得分:13)
如果您不想在代码中缩放图像(我认为这就是您在问题中的含义?)为什么不只是将源图像放大?最简单的解决方案有时是最好的!
此外,getScaledInstance()通常是一个坏主意。 This解释了原因,并为调整图像大小提供了更好的选择。如果您在其他地方使用该图像,则值得阅读该文章并使用更好的技术(例如graphics.drawImage())进行缩放,但如果您只是在菜单中使用它,则可能需要调整源图像的大小最好的事情。
如果您要调整大小:
BufferedImage image = ImageIO.read("img.jpg");
BufferedImage ret = new BufferedImage(32,32,BufferedImage.TYPE_RGB);
ret.getGraphics().drawImage(image,0,0,32,32,null);
这样的东西可以为您提供图像,然后您可以使用ret
创建ImageIcon。