http://blog.csdn.net/zgs_shmily/article/details/49562031
代码依赖于其他工具包,下载请移步: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;
- }
- }