我正在为自定义解决方案创建一个curation插件。
当会员提供网址时,我会检索所有图片,然后我会选择从此页面中选择图片。
我怎么才能提供最小宽度的图像? (考虑到一些img标签没有宽度或高度属性)
我应该解析每张图片吗? 或者Jsoup有解决方案吗?
答案 0 :(得分:2)
找到图像真实大小的唯一方法是检索它。即使HTML中存在宽度/高度属性,它也可能与图像的实际尺寸不匹配。 JSoup允许您在给定要解析的页面的基本URL的情况下获取图像的完整URI。
答案 1 :(得分:1)
是的,你可以使用ImageIO.read存储图像(新的BufferedImage(新的URL(你的URL))),提取它的大小,高度,宽度并将其存储在文件中。
这是带有File Parse的JSOUP。你可以用这种方式使用JSOUP! 看看,
答案 2 :(得分:1)
使用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();
}
}
}
如果你只想要一个Image的属性,我们可以使用Jsoup api,下面的代码片段描述了相同的内容:
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"));
}