gpt4 book ai didi

java - Java 中的 Image.GetScaledInstance() 不工作

转载 作者:行者123 更新时间:2023-12-02 11:32:33 24 4
gpt4 key购买 nike

我运行下面的代码,它从中获取scaledInstance的图像已经出现,但我正在尝试创建它的较小版本。

Image tPoke = poke.getScaledInstance(poke.getWidth(null)*2/3,poke.getHeight(null)*2/3,Image.SCALE_DEFAULT);

运行此代码后,图像返回的宽度为-1;

最佳答案

图像在 Java 中异步加载/生成。

要等待java.awt.Image准备好(完全加载或调整大小),您可以使用java.awt.MediaTracker:

// load
Image image = Toolkit.getDefaultToolkit().getImage(url);

// resize, internally chains as operation after loading
image = image.getScaledInstance(width, height, Image.SCALE_AREA_AVERAGING);

// wait for image to be ready
MediaTracker tracker = new MediaTracker(new java.awt.Container());
tracker.addImage(image, 0);
try {
tracker.waitForAll();
} catch (InterruptedException ex) {
throw new RuntimeException("Image loading interrupted", ex);
}

这也是为什么 ImagegetWidth(..)getHeight() 上有一个观察者参数。只有当它准备好时,宽度、高度和图像数据才可用(在此之前,宽度和高度通常返回为-1)。图像加载后,您可以使用 null 作为观察者并直接获取尺寸。

关于java - Java 中的 Image.GetScaledInstance() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49196177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com