代码依赖于其他工具包,下载请移步:http://download.csdn.net/detail/zhaoguoshuai91/9231957
废话不多说,直接上代码
public class ImageInfoUtil {
private static Logger log = Logger.getLogger(ImageInfoUtil.class);
/**
* 获取单张图片的全量Info信息
* @param imagePath 图片的物理路径
*/
public static Map<String,String> getImageInfo(String imagePath){
Map<String,String> imageInfo=new HashMap<String,String>();
try {
File jpegFile = new File(imagePath);
if(jpegFile.isFile()){//图片必须是一个文件
Metadata metadata = JpegMetadataReader.readMetadata(jpegFile);
for(Directory exif:metadata.getDirectories()){
Iterator tags= exif.getTags().iterator();
while (tags.hasNext()) {
Tag tag = (Tag)tags.next();
log.debug("tag:<br/>");
log.debug(tag);
String key=tag.getTagName().trim().replace(" ","");
String val=tag.getDescription().trim().replace(" ","");
imageInfo.put(key, val);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return imageInfo;
}
/**
* 获取单张图片指定Info类型的信息
* @param imagePath 图片的物理路径
* @param direct Info类型[eg:InfoSubIFDDirectory or PhotoshopDirectory]
*/
public static Map<String,String> getImageInfo(String imagePath,Class<? extends Directory> direct){
Map<String,String> imageInfo=new HashMap<String,String>();
try {
File jpegFile = new File(imagePath);
if(jpegFile.isFile()){
Metadata metadata = JpegMetadataReader.readMetadata(jpegFile);
Directory exif=metadata.getFirstDirectoryOfType(direct);
if(exif!=null){
Iterator tags= exif.getTags().iterator();
while (tags.hasNext()) {
Tag tag = (Tag)tags.next();
log.debug("tag:<br/>");
log.debug(tag);
String key=tag.getTagName().trim().replace(" ","");
String val=tag.getDescription().trim().replace(" ","");
imageInfo.put(key, val);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return imageInfo;
}
/**
* 校验图片分辨率
* @param imagePath 图片的物理路径
* @param imageHeight 图片的高
* @param imageWidth 图片的宽
*/
public static boolean checkImageResolution(String imagePath,String imageHeight,String imageWidth){
Map<String,String> imageInfo=getImageInfo(imagePath);
String currentImageHeight=imageInfo.get("ImageHeight").replace("pixels","");
String currentImageWidth=imageInfo.get("ImageWidth").replace("pixels","");
log.debug("tag:currentImageWidth:"+currentImageWidth+","+"currentImageHeight:"+currentImageHeight);
if(imageHeight.equals(currentImageHeight)&&imageWidth.equals(currentImageWidth)){
return true;
}
return false;
}
}