一、从正文中获取图片并找出满足大小需求的图片
二、代码: 首次写使用了下面这种方式,如有其它方式还请大家赐教
package com.fang.dbtest;
import java.awt.image.BufferedImage;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.imageio.ImageIO;
public class Tests {
// 获取img 获取 src
@SuppressWarnings("unused")
public static List<String> replacestyle(String content) {
List<String> list = new ArrayList<String>();
List<String> scrlist = null;
// 获取img 标签的正则
String img = "<img\\s+([^>]+)\\s*>";
// 获取 img标签中的src
String r = "src=\"(.*?)\"";
// 获取 img 中的style 样式
String style = "style=\"(.*?)\"";
Pattern p = Pattern.compile(img);
// 获取匹配
Matcher ma = p.matcher(content);
while (ma.find()) {
String imgtag = ma.group();
// System.out.println(imgtag);
// 再从这个获取的img标签中获取src
Pattern pp = Pattern.compile(r);
Matcher mma = pp.matcher(imgtag);
if (mma.find()) {
// 获取src
String src = mma.group();
// 获取地址
src = src.substring(5, src.length() - 1);
// System.out.println(src);
list.add(src);
}
}
scrlist = getImgSize(list);
return scrlist;
}
// 获取图片大小
public static List<String> getImgSize(List<String> list) {
BufferedImage sourceImg = null;
List<String> srclist = new ArrayList<String>();
try {
if (null != list && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
String src = list.get(i);
URL url = new URL(src);
// 根据url 获取BufferImage 对象
sourceImg = ImageIO.read(url);
// 调用bufferimage 对象的两个方法获取图片宽度高度
Integer w = Integer.valueOf(sourceImg.getWidth());
Integer h = Integer.valueOf(sourceImg.getHeight());
System.out.println("图片宽:" + w + "\n图片高:" + h);
if (w > 100 && h > 50) {
srclist.add(src);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return srclist;
}
public static void main(String[] args) {
String content = "<img src=\"http://imgs.soufun.com/news/2014_11/26/1416965084854.jpg\" style=\"heith:8px;width:10px\"> />";
// returnContent(content);
List<String> src = replacestyle(content);
for (Iterator<String> it = src.iterator(); it.hasNext();) {
String imgsrc = it.next();
System.out.println(imgsrc);
}
}
}