Java读取图片分辨率

代码依赖于其他工具包,下载请移步: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;
	}
}




  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值