gpt4 book ai didi

java - 获取图像的高度和宽度时,ImageObserver 字段的用途是什么?

转载 作者:行者123 更新时间:2023-12-01 22:10:53 26 4
gpt4 key购买 nike

Java有这个方法:getWidth(ImageObserverobserver)

它返回图像的宽度。这个方法看起来很简单,直到你到达需要 ImageObserver 的部分。 ImageObserver 作为参数的目的是什么。还有其他办法解决这个问题吗?

请注意,我不能只使用此处提到的 ImageIcon:Getting Height and Width of Image in Java without an ImageObserver原因是因为我最终将从 JFileChooser 加载图像。这也是为什么我不能只使用高度和宽度常量的原因。我不知道用户想要使用哪张图片。

另外,我觉得我不应该因为这两个原因发布我的代码

A) 我的代码与 SSCCE 代码相差甚远:http://sscce.org/

B)这是一个非常普遍的问题,我觉得我的代码太具体了。

最佳答案

来自JavaDocs

Determines the width of the image. If the width is not yet known, this method returns -1 and the specified ImageObserver object is notified later.

这基本上意味着,如果 Image 未完全实现(因为它通常在后台线程中加载),则当该值已知时,ImageObserver 将收到通知。

更好的解决方案是使用 ImageIO API,因为 read 方法在图像完全加载(并实现)或抛出异常之前不会返回IOException 如果图像无法加载。

看看Reading/Loading an Image了解更多详情

如果您“确实”必须使用 ImageToolkit 来加载它们,那么您还应该看看 MediaTracker ,但由于 BufferedImage (由 ImageIO.read 返回)扩展了 Image,所以确实没有太大需要

关于java - 获取图像的高度和宽度时,ImageObserver 字段的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31869027/

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