【问题标题】:How to retrieve image width with Jsoup如何使用 Jsoup 检索图像宽度
【发布时间】:2017-08-21 19:57:21
【问题描述】:

我正在为自定义解决方案创建一个策展插件。

当会员提供网址时,我会检索所有图片,然后我可以选择从此页面中选择图片。

我怎样才能只提供具有最小宽度的图像? (考虑到一些img标签没有width或height属性)

我应该解析每张图片吗? 或者有没有 Jsoup 的解决方案?

【问题讨论】:

    标签: java jsoup


    【解决方案1】:

    找到图像真实大小的唯一方法是检索它。即使 HTML 中有宽度/高度属性,它也可能与图像的实际尺寸不匹配。 JSoup 允许您在给定您正在解析的页面的基本 URL 的情况下获取图像的完整 URI。

    【讨论】:

    • 所以你的意思是我应该得到图像,并使用 FileImageInputStream 或其他东西来获得我的图像真实大小?
    【解决方案2】:

    使用 Jsoup,我们只能获取为图像标签定义的宽度和高度属性,该标签在页面上显示给定像素的图像,但不能获取图像的确切宽度和高度,我们可以使用 ImageIO 获取确切的宽度和高度图片高度如下:

    import java.awt.image.BufferedImage;
    import java.net.URL;
    import javax.imageio.ImageIO;
    
    public Main{
        public static void main(String args[]){
            try {
                BufferedImage bimg = ImageIO.read(new URL("https://pictures.dealer.com/w/woodhouseomahaincfordfd/0027/a958ba95df26eaf392e298293da2847ex.jpg"));
                System.out.println(bimg.getWidth()+"==="+bimg.getHeight());
                bimg = ImageIO.read(new URL("https://pictures.dealer.com/ddc/resize/240x/quality/70/sharpen/1/ddc/w/woodhouseomahaincfordfd/0027/a958ba95df26eaf392e298293da2847ex.jpg"));
                System.out.println(bimg.getWidth()+"==="+bimg.getHeight());
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    如果你只想要图像的属性,我们可以使用 Jsoup api,下面的代码 sn-p 描述了相同的:

    Elements images = document.select("img[src~=(?i)\\.(png|jpe?g|gif)]");
    for (Element image : images) 
    {
        System.out.println("height : " + image.attr("height"));
        System.out.println("width : " + image.attr("width"));
    }
    

    【讨论】:

      【解决方案3】:

      是的,您可以使用 ImageIO.read(new BufferedImage(new URL(YOUR URL))) 存储图像,提取其大小、高度、宽度并将其存储在文件中。

      带有文件解析的 JSOUP 出现了。你可以这样使用 JSOUP !!! 看看,

      http://jsoup.org/cookbook/input/load-document-from-file

      【讨论】:

        猜你喜欢
        • 2017-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多