Java通過圖片的URL獲取圖片的寬高


/**
     * 讀取遠程url圖片,得到寬高
     * @param imgurl 圖片路徑
     * @return [0] 寬  [1]高
     */
    public static int[] getImgWH(String imgurl) {
        boolean b=false;
        try {
            //實例化url
            URL url = new URL(imgurl);
            //載入圖片到輸入流
            java.io.BufferedInputStream bis = new BufferedInputStream(url.openStream());
            //實例化存儲字節數組
            byte[] bytes = new byte[100];
            //設置寫入路徑以及圖片名稱
            OutputStream bos = new FileOutputStream(new File("pic.jpg"));
            int len;
            while ((len = bis.read(bytes)) > 0) {
                bos.write(bytes, 0, len);
            }
            bis.close();
            bos.flush();
            bos.close();
            //關閉輸出流
            b=true;
        } catch (Exception e) {
            //如果圖片未找到
            b=false;
        }
        int[] a = new int[2];
        if(b){//圖片存在
            //得到文件
            java.io.File file = new java.io.File("pic.jpg");
            BufferedImage bi = null;
            boolean imgwrong=false;
            try {
                //讀取圖片
                bi = javax.imageio.ImageIO.read(file);
                try{
                    //判斷文件圖片是否能正常顯示,有些圖片編碼不正確
                    int i = bi.getType();
                    imgwrong=true;
                }catch(Exception e){
                    imgwrong=false;
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            if(imgwrong){
                a[0] = bi.getWidth(); //獲得 寬度
                a[1] = bi.getHeight(); //獲得 高度
            }else{
                a=null;
            }
            //刪除文件
            file.delete();
        }else{//圖片不存在
            a=null;
        }
        return a;

    }
//使用
int
[] arr = getImgWH("imgUrl"); width = arr[0]; height = arr[1];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM