HY, 我对图形有点疑问。我有一个像我这样调整大小的图像:
Image BigImage = img.getScaledInstance(115, 154, java.awt.Image.SCALE_SMOOTH);
我尝试将其绘制在图形上:
g2.drawImage(BigImage, 0, 0, null);
遗憾的是,它不起作用。 它只有在我添加 ImageIcon te = new ImageIcon(BigImage);
时才有效Image BigImage = img.getScaledInstance(115, 154, java.awt.Image.SCALE_SMOOTH);
ImageIcon te = new ImageIcon(BigImage);
g2.drawImage(BigImage, 0, 0, null);
你知道为什么吗?你还有另一种方法吗?
答案 0 :(得分:1)
我现在不能说你的代码无效,但是你可以使用this drawImage method直接绘制图像的缩放实例。它对我有用。
答案 1 :(得分:1)
部分Image.getScaledInstance()州的文件。
即使原始源图像已经完全加载,也可以异步加载新的Image对象。
(我的重点)
解决问题的一种方法是将图像添加到MediaTracker以确保在渲染之前加载它。但最重要的是,不要在paint()/ paintComponent()方法中执行任何操作,这是我怀疑给出的代码片段。 ImageIcon的实例化可能会使执行速度变慢,足以使图像加载。
我将提供的另一个提示是,如果您发布SSCCE,您会尽快得到更好的帮助。这对于基于图像的示例特别有用,因为如果您将热链接到网络上可用的图像,我们可以看到重新调整图像的大小。 ;)