在没有ImageObserver的情况下在Java中获取图像的高度和宽度

Bil*_*zac 4 java awt image-processing dimensions

我试图让heightwidth图像的Java(通过URL)没有ImageObserver的.我目前的代码是:

public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub

    File xmlImages = new File("C:\\images.xml");
    BufferedReader br = new BufferedReader(new FileReader(xmlImages));
    File output = new File("C:\\images.csv");
    BufferedWriter bw = new BufferedWriter(new FileWriter(output));
    StringBuffer sb = new StringBuffer();
    String line = null;
    String newline = System.getProperty("line.separator");
    while((line = br.readLine()) != null){
        if(line.contains("http")){
            URL url = new URL(line.)
            Image img = Toolkit.getDefaultToolkit().getImage(url);
            sb.append(line + ","+ img.getHeight(null) + "," + img.getWidth(Null) + newline);            
        }

    }

    br.close();
    bw.write(sb.toString());
    bw.close();
}
Run Code Online (Sandbox Code Playgroud)

当我进入调试模式时,我能够看到图像已加载,我可以看到图像heightwidth图像,但我似乎无法返回它们.该getHeight()getWidth()方法需要的图像观察者,我没有.先感谢您.

mdm*_*dma 9

您可以使用ImageIcon为您处理图像的加载.

更改

Image img = Toolkit.getDefaultToolkit().getImage(url);
sb.append(line + ","+ img.getHeight(null) + "," + img.getWidth(Null) + newline);
Run Code Online (Sandbox Code Playgroud)

ImageIcon img = new ImageIcon(url);
sb.append(line + ","+ img.getIconHeight(null) + "," + img.getIconWidth(Null) + newline);
Run Code Online (Sandbox Code Playgroud)

主要的变化是使用ImageIcon,和getIconWidth,getIconHeight方法.