2012-01-03 8 views
1

私はカスタムソリューションのためにcuration Pluginを作成しています。Jsoupで画像の幅を取得する方法

メンバーがURLを指定すると、すべてのイメージが取得され、このページからイメージを選択する選択肢が表示されます。

どのようにして最小幅の画像しか提供できないのですか? (いくつかのimgタグには幅や高さの属性がありません)

各画像を解析する必要がありますか? Jsoupのソリューションはありますか?

答えて

1

はの正確な幅と高さを与えられた画素についてのページに画像を表示する画像タグに定義されていますが、いない属性、見てみましょう画像、私たちは以下のように画像の正確な幅と高さを取得するためのImageIOを使用することができますしたい場合は、単に画像の属性を、私たちはこのためにJsoup APIを使用することができます

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(); 
     } 
    } 
} 

、以下のコードスニペットは、同じことを示しています:

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")); 
} 
2

イメージの真のサイズを見つけるための唯一の方法は、イメージを検索することです。 HTMLにwidth/height属性があっても、画像の実際のサイズと一致しないことがあります。 JSoupには、解析しているページのベースURLを指定してイメージの完全なURIを取得できるようにするための規定があります。

+0

イメージを取得し、FileImageInputStreamなどを使用してイメージを実際のサイズにする必要がありますか? –

+1

はい、そのようなものです。 – Mitch

1

はい、ImageIO.read(新しいBufferedImage(新しいURL(YOUR URL)))を使用して画像を保存し、そのサイズ、高さ、幅を抽出してファイルに保存できます。

ファイル解析を伴うJSOUPがここにあります。あなたはこの方法でJSOUPを使うことができます! 我々は唯一の幅と高さを取得することができますJsoupを使用

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

関連する問題