我遇到了一个问题。我的图像太大了,所以放大了相应的JMenuItem。我不想开发像这样的自行车
ImageIcon image = new ImageIcon(new ImageIcon("/home/template/img.jpg")
.getImage().getScaledInstance(32, 32, Image.SCALE_DEFAULT));有没有其他方法可以做到这一点?
发布于 2011-08-03 02:22:52
如果你不想在代码中缩放图像(我假设这就是你在问题中的意思),为什么不从一开始就让源图像变得那么大呢?最简单的解决方案有时是最好的!
而且,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了。
https://stackoverflow.com/questions/6916693
复制相似问题