0

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

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

4

1 回答 1

0

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

于 2013-11-10T09:00:21.580 回答