how to get the size of an image in java

后端 未结 4 1478
谎友^
谎友^ 2021-02-03 11:14

hi I am using Jtidy parser in java.


URL url = new URL(\"http://l1.yimg.com/t/frontpage/baba-ramdev-310511-60.jpg\");  
Image image = new ImageIcon(url).g         


        
相关标签:
4条回答
  • 2021-02-03 11:32

    How to count your bytes & eat them too.

    import java.awt.Image;
    import javax.imageio.ImageIO;
    import javax.swing.*;
    import java.net.URL;
    import java.io.*;
    
    class ImageInfo {
    
        public static void main(String[] args) throws Exception {
            URL url = new URL(
                "http://l1.yimg.com/t/frontpage/baba-ramdev-310511-60.jpg");
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            InputStream is = url.openStream();
            byte[] b = new byte[2^16];
            int read = is.read(b);
            while (read>-1) {
                baos.write(b,0,read);
                read = is.read(b);
            }
            int countInBytes = baos.toByteArray().length;
            ByteArrayInputStream bais = new ByteArrayInputStream(
                baos.toByteArray());
            Image image = ImageIO.read(bais);
            int width = image.getWidth(null);
            int height = image.getHeight(null);
            String imageInfo =
                width + "x" + height + " px, " +
                countInBytes + " bytes.";
            JOptionPane.showMessageDialog(null,
                new JLabel(imageInfo, new ImageIcon(image), SwingConstants.CENTER));
        }
    }
    

    enter image description here

    0 讨论(0)
  • 2021-02-03 11:47

    Use a HEAD request to get the content length

    URL url = new URL("http://l1.yimg.com/t/frontpage/baba-ramdev-310511-60.jpg");
    //Set the user agent
    System.setProperty("http.agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0");
    //Use Http to get the head request
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    //head request to minimal response
    urlConnection.setRequestMethod("HEAD");
    length = (urlConnection).getContentLengthLong();
    
    0 讨论(0)
  • 2021-02-03 11:50

    Try:

    url.openConnection().getContentLength();
    

    If this doesn't work, you can load the stream using:

    url.openStream()
    

    ...and read the stream until the end, counting how many bytes were actually read. You might also use CountingInputStream decorator to reuse the stream later. However the first code snippet seems to work.

    0 讨论(0)
  • 2021-02-03 11:51

    This is one of the simplest method to find the dimensions of image.

     URL url=new URL("Any web image url");
     BufferedImage image = ImageIO.read(url);
     int height = image.getHeight();
     int width = image.getWidth();
     System.out.println("Height : "+ height);
     System.out.println("Width : "+ width);
    
    0 讨论(0)
提交回复
热议问题