InputStream,BufferedImage缺少图像

时间:2013-11-10 07:09:47

标签: java image parsing http

我正在尝试解析网址中的图片。它工作正常。 但我也想获得图像的高度和宽度。 所以,我正在尝试使用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;
}

但如果我取消注释输入流或缓冲区,它会跳过主要是大的图像。

1 个答案:

答案 0 :(得分:0)

HTTP 403错误意味着禁止。这可能意味着URL错误,双重编码或正确,但其他错误。您可能需要设置User-Agent HTTP标头以假装您的程序是Web浏览器。