2013-11-10 101 views
0

我想解析來自url的圖像。它工作正常。 但我也想獲得圖像的高度和寬度。 所以,我試圖使用BufferedImageInputStream,BufferedImage丟失圖像

但是,如果我試圖與圖像進行任何類型的連接,它會開始跳過圖像。 我不知道爲什麼會發生這種情況,可能是因爲循環強制跳過大圖片。

代碼 - >

public Vector getimages(Document doc) { 
    Vector images = new Vector(50, 50); 
    Elements png = doc.select("img"); 

    try { 

     BufferedImage readImage_img = null; 
     for(Element pngs : png) { 
      if(!images.contains(new String(pngs.attr("abs:src")))) { 
      //InputStream is = new URL(pngs.attr("abs:src")).openStream(); 

      //readImage_img = ImageIO.read(is); 
      //int img_h = readImage_img.getHeight(); 
      //int img_w = readImage_img.getWidth(); 
      //if(img_h>50 && img_w>50) 
      //{ 
      images.addElement(new String(pngs.attr("abs:src"))); 
      //} 
      } 
     } 

    } catch (Exception ex) { 
    } 
    return images; 
} 

但如果我取消的InputStream或緩衝它跳過圖像主要是大。

+4

嘗試在空的catch塊中打印異常 –

+0

知道它比x java.io.IOException:服務器返回的HTTP響應代碼:403對於URL:http://im.tech2.in.com/ –

+0

這真的是完整的網址?這只是一個域名,所以它不能是圖片網址。 –

回答

0

HTTP 403錯誤意味着禁止。這可能意味着URL是錯誤的,雙重編碼的,或者是正確的,但是其他的錯誤。您可能需要設置User-Agent HTTP標頭來假裝您的程序是一個Web瀏覽器。