- Java code
public class Test { public static void main(String[] args) { Toolkit tk = Toolkit.getDefaultToolkit(); Image image1 = tk.getImage("f:/TestDir/test.jpg"); int width1 = image1.getWidth(null); System.out.println(width1); }}
打印结果:-1
-------------------------------------------
- Java code
public class Test2 { public static void main(String[] args) { Toolkit tk = Toolkit.getDefaultToolkit(); Image image1 = tk.getImage("f:/TestDir/test.jpg"); Image image2 = new ImageIcon("f:/TestDir/test.jpg").getImage(); int width1 = image1.getWidth(null); System.out.println(width1); int width2 = image2.getWidth(null); System.out.println(width2); }}
打印结果:161
161
请高手解说下其中的原理,特别 是打印-1的原因。
------解决方案--------------------------------------------------------
第一次是因为你的图像可能还没有被完全load进来。
顺便说一下,推荐你使用ImageIO.read()来读取图片!
你可以使用MeadiaTracker来等图片完全加载以后再读它的属性值
http://blog.csdn.net/jia20003/article/details/7279667
------解决方案--------------------------------------------------------
BufferedImage image = ImageIO.read(路径);
image.getWidth()