这里是个新手,但这里有一个小测试代码可以解释我的问题。打印的值为-1。我只是对如何返回图像的像素宽度一无所知,我在这里是否遗漏了一些非常明显的东西?这整个 ImageObserver 东西毫无意义!!!
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class imagetest2 extends JPanel {
Image i =Toolkit.getDefaultToolkit().getImage(/*image*/);
public int test(){
int x = i.getWidth(null);
return x;
}
}
class imagetest {
public static void main(String args[]){
imagetest2 tesst = new imagetest2();
System.out.print(tesst.test());
}
}
最佳答案
Toolkit.getDefaultToolkit().getImage()
可能会异步加载几乎不是您想要的图像。
使用 ImageIO
和 BufferedImage
而不是 getWidth()
和 getHeight()
而不是 ImageObserver
参数(尽管如果您传递 null
其他参数也可以正常工作):
BufferedImage image = ImageIO.read("/*image*/");
int width = image.getWidth();
关于java - 我不明白图像类!我在这里做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10288676/