Java图片上传与EXIF信息采集

该博客探讨了如何在Java中实现图片Exif信息的采集,使用metadata-extractor库解析图片拍摄日期。博主发现SpringMVC的MultipartFile在转换为File时会丢失Exif信息,因此改用Servlet处理图片上传。此外,文章提到了ajaxfileupload.js在处理文件上传时的便利性,但指出手机UC浏览器会添加额外的script脚本,需要额外处理。
摘要由CSDN通过智能技术生成


Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的。实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS)、缩略图等。简单地说,Exif=JPEG+拍摄参数。

——百度百科·Exif

实现图片Exif信息采集

最近项目中需要获取到用户上传图片的拍摄日期,想起可以使用metadata-extractor解析。这个jar包可以拿到关于图片的很多信息,代码如下:

/**
 * 图片Exif信息采集
 *
 */
public class ImageExif 
{
    public static void main( String[] args ) 
    		throws ImageProcessingException, IOException{
    	
        File img = new File("图片.jpg");
        Metadata meta = JpegMetadataReader.readMetadata(img);
        
        for(Directory dir : meta.getDirectories()){
        	for(Tag tag : dir.getTags()){
        		String tagName = tag.getTagName();
        		String description = tag.getDescription();
        		System.out.printf("%-30s\t%-100s\n", tagName, description);
        	}
        }
    }
}

执行结果如下:

Compression Type              	Baseline
Data Precision                	8 bits
Image Height                  	800 pixels
Image Width                   	532 pixels
Number of Components          	3
Component 1                   	Y component: Quantization table 0, Sampling factors 1 horiz/1 vert
Component 2                   	Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert
Component 3                   	Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert
Version                       	1.2
Resolution Units              	inch
X Resolution                  	72 dots
Y Resolution                  	72 dots
Make                          	NIKON CORPORATION
Model                         	NIKON D700
Orientati
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值