日期:2014-05-18  浏览次数:20671 次

Java 下载网络图片方法为非阻塞的我需要生成缩略图获取不到图片高宽


setImage.setImageUrl(CrawlDownImage.getNewsImage(img));
setImage.setCreateTime(new Date());
setImage.setLastModifyTime(new Date());
//setImage.setImageHelp(imageHelp);
//获取文件扩展名
String fileExtName=Tools.getFileExtName(setImage.getImageUrl());
String sImageName=System.currentTimeMillis()+Tools.showRandom(10000)+
fileExtName;
//生成100缩略图
System.out.println(setImage.getImageUrl()+"-----------");
String fileSize=SmallImage.saveImageAsJpg(setImage.getImageUrl(),
Procedure.IMAGE_URL_S,
sImageName,
NewsSetImage.S_IMAGE_WIDTH,
NewsSetImage.S_IMAGE_HEIGHT);
String imageSize[]=fileSize.split("|");
System.out.println("imageSize[]"+imageSize);
System.out.println("imageSize:"+imageSize[0]);
System.out.println("imageSize:"+imageSize[1]);



下载图片代码

/***
 * 获取网络新闻图片
 * @param url 图片URL
 * @return   返回替换过多URL
 * @throws IOException
 */
public static synchronized String getNewsImage(String url)
throws IOException {
HttpClient client = new HttpClient();

// 忽略Cookies
client.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);
GetMethod get = new GetMethod(url);
synchronized (get) {
client.executeMethod(get);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String filePath = Procedure.IMAGE_URL
+ df.format(Calendar.getInstance().getTime()) + "/";
String fileName = System.currentTimeMillis()
+ url.substring(url.lastIndexOf("."));
File storeFile = new File(filePath);
if (!storeFile.exists()) {
storeFile.mkdir();
}
FileOutputStream output = new FileOutputStream(filePath + fileName);
// 得到网络资源的字节数组,并写入文件
synchronized (output) {
output.write(get.getResponseBody());
output.close();
}
return filePath + fileName;
}
}


生成缩略图代码

/**
 * <li>将生成的图片保存为JPG格式</li>
 * @param fromFileStr - 源文件路径
 * @param saveToFileStr - 保存文件路径
 * @param width - 生成文件宽度
 * @param hight - 生成文件高度
 * @return String - 返回原图片的-宽|高
 * @throws Exception  - 错误信息
 */
public synchronized static String saveImageAsJpg(String fromFileStr, String filePath,
String fileName,int width, int hight) throws Exception {
BufferedImage srcImage;
String imgType = "JPEG";
if (fromFileStr.toLowerCase().endsWith(".png")) {
imgType = "PNG";
}
File saveFilepath = new File(filePath);
if(!saveFilepath.exists()){
saveFilepath.mkdir();
}
File saveFile = new File(filePath+fileName);
File fromFile = new File(fromFileStr);
srcImage = ImageIO.read(fromFile);