【发布时间】:2017-03-12 03:26:09
【问题描述】:
如何调整 ImageIcon 的大小?
假设我们有一个想要在屏幕上显示的 ImageIcon。但是 ImageIcon 太大了,所以我们看不到整个图片。然后希望能够将 ImageIcon 调整为特定的宽度和高度,以使显示的 ImageIcon 更小,以便我们可以在屏幕上看到整个图像。知道如何在 java 中做到这一点吗?
【问题讨论】:
-
假设您访问了最大的知识库并尝试过,可能是Googling 甚至是StackOverflow,想象一下您在那段时间可能取得的成就
-
@UnholySheep 我尝试使用
getScaledInstance()方法,但该方法仅适用于 Image 类型,不适用于 ImageIcon。然后我尝试将我的 ImageIcon 转换为 Image-object,但 Eclipse 说“无法从 ImageIcon 转换为 Image” -
@UnholySheep 然后我尝试使用一些东西:
public static BufferedImage resize(BufferedImage image, int width, int height) { BufferedImage bi = new BufferedImage(width, height, BufferedImage.TRANSLUCENT); Graphics2D g2d = (Graphics2D) bi.createGraphics(); g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY)); g2d.drawImage(image, 0, 0, width, height, null); g2d.dispose(); return bi; }尝试调整方法以适应 ImageIcon,但遇到了与我上面的评论相同的问题。 -
@UnholySheep 上面的解决方案(对我来说)似乎比
getScaledInstance()方法更牵强,所以我再试一次。通过以下方式成功将 ImageIcon 转换为 Icon:Image image = (Image) imageIcon.getImage();然后在image上使用getScaledInstance()。然后我尝试将图像添加到 JLabel 中,但不接受image的对象类型(对象类型为 Image)。然后尝试将image转换回一个不起作用的 ImageIcon ......所以现在我又回到了第一格