在java中使用GetScaleInstance()缩放图像
有人能解释一下吗?我创建图像对象有三种方法,但只有最后一个对象(k)可以使用getscalledinstance()成功缩放在java中使用GetScaleInstance()缩放图像,java,image,get,Java,Image,Get,有人能解释一下吗?我创建图像对象有三种方法,但只有最后一个对象(k)可以使用getscalledinstance()成功缩放 阅读Image.getScaledInstance的Javadoc: 返回一个新的图像对象,该对象将呈现 指定宽度处的图像和 默认情况下,高度。新的图像对象 可以异步加载,即使原始源映像 已完全加载 当您尝试绘制时,确保缩放图像确实存在(如果您需要如何操作的建议,请查看“确保图像已完全加载”)。它与通过ImageIO获得的图像一起工作的原因是ImageIO为您提供了一个B
阅读Image.getScaledInstance的Javadoc: 返回一个新的
图像
对象,该对象将呈现
指定宽度处的图像
和
默认情况下,高度
。新的图像
对象
可以异步加载,即使原始源映像
已完全加载
当您尝试绘制时,确保缩放图像确实存在(如果您需要如何操作的建议,请查看“确保图像已完全加载”)。它与通过ImageIO获得的图像一起工作的原因是ImageIO为您提供了一个BuffereImage,并且总是加载它
另请注意:为了简单地将图像绘制为图像大小以外的其他大小,您不需要创建缩放实例-Graphics提供了动态绘制不同大小图像的方法。您可能会更好地使用它,这取决于用例
public class scalingTest extends JPanel {
public static Image i;
public static Image j;
public static Image k;
scalingTest() throws IOException
{
i = Toolkit.getDefaultToolkit().getImage("C:/Users/Prashant/Desktop/2.png");
j = new ImageIcon("C:/Users/Prashant/Desktop/2.png").getImage();
k = ImageIO.read(new File("C:/Users/Prashant/Desktop/2.png"));
}
public static void main(String s[]) throws IOException
{
JFrame jf = new JFrame("Scaling TEST");
jf.add(new scalingTest());
jf.setSize(500, 500);
jf.setVisible(true);
}
@Override
public void paintComponent(Graphics g)
{
g.drawImage(i.getScaledInstance(100, 100, Image.SCALE_DEFAULT), 0, 0, this);
g.drawImage(j.getScaledInstance(100, 100, Image.SCALE_DEFAULT), 100, 100, this);
g.drawImage(k.getScaledInstance(100, 100, Image.SCALE_DEFAULT), 200, 200, this);
}
}