How can I get height and width of an image?

前端 未结 5 1043
野的像风
野的像风 2021-01-04 19:40

Why is the following bit of code returns Height: -1 which means that the height is yet not known. How to get height of the image?

 try {
        // Create a          


        
5条回答
  •  轻奢々
    轻奢々 (楼主)
    2021-01-04 20:05

    Use ImageIO.read(URL) or ImageIO.read(File) instead. It will block while loading, and the image width & height will be known after it returns.

    E.G.

    import java.awt.image.BufferedImage;
    import javax.swing.*;
    import javax.imageio.ImageIO;
    import java.net.URL;
    
    class SizeOfImage {
    
        public static void main(String[] args) throws Exception {
            URL url = new URL("https://i.stack.imgur.com/7bI1Y.jpg");
            final BufferedImage bi = ImageIO.read(url);
            final String size = bi.getWidth() + "x" + bi.getHeight();
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    JLabel l = new JLabel( 
                        size, 
                        new ImageIcon(bi), 
                        SwingConstants.RIGHT );
                    JOptionPane.showMessageDialog(null, l);
                }
            });
        }
    }
    

    Alternately, add a MediaTracker to the image being loaded asynchronously by the Toolkit and wait until it is completely loaded.

提交回复
热议问题