前段时间后台搞了个图片和视频库,看到后台.net的同事获取了EXIF信息。今天也试了一下。分享交流一下。
EXIF是什么?
EXIF格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS)、缩略图等。
准备:
在GitHub上找到了metadata-extractor这个开源库(),它支持.NET PHP、JAVA,还支持其他图片格式和视频喔。估计后台的同事也是用它,我们试试。
使用:
我们通过Maven方式导入到项目中
<dependency>
<groupId>com.drewnoakes</groupId>
<artifactId>metadata-extractor</artifactId>
<version>2.14.0</version>
</dependency>
定义一个方法,返回一个EXIF信息的集合,直接使用即可
/**
* 读取图片EXIF信息
*
* @param imagePath 图片路径
*/
public static List<String> readImageEXIF(String imagePath) throws JpegProcessingException, IOException {
File imageFile = new File(imagePath);
List<String> exifLists = new ArrayList<>();
Metadata metadata;
metadata = JpegMetadataReader.readMetadata(imageFile);
Iterator<Directory> iterator = metadata.getDirectories().iterator();
while (iterator.hasNext()) {
Directory exif = iterator.next();
Iterator<Tag> tags = exif.getTags().iterator();
while (tags.hasNext()) {
Tag tag = tags.next();
logger.info(tag);
}
}
return exifLists;
}
效果:
没办法这个标准是外国人定义的,只能返回英文。要转换中文只能自己匹配或者调用翻译接口了
[JPEG] Compression Type - Baseline
[JPEG] Data Precision - 8 bits
[JPEG] Image Height - 1180 pixels
[JPEG] Image Width - 2448 pixels
[JPEG] Number of Components - 3
[JPEG] Component 1 - Y component: Quantization table 0, Sampling factors 2 horiz/2 vert
[JPEG] Component 2 - Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert
[JPEG] Component 3 - Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert
[Exif SubIFD] Exif Version - 2.10
[Exif SubIFD] User Comment - {"Version":"1.0.0","BeautyInfo":{"IsAIBeauty":false,"IsOldBeauty":true,"IsSkinColour":false,"SwitchMedicatedAcne":false,"IsBrightEyes":false,"IsReduceBlackEyes":false,"IsSharpen":true,"OldBeautyCount":1,"OldBeautyValue":"[0.5]"},"FaceliftInfo":{"IsChangeFacelift":false,"IsChangeThinFace":false,"IsChangeEyeLift":false,"IsChangeFaceChin":false,"IsChangeNose":false,"IsChangeMouth":false},"FilterInfo":{"IsUseFilter":true,"FilterCount":1,"FilterValueList":"[0.8]"},"ARInfo":{"IsUseAR":false},"MakeupInfo":{"IsUseMakeup":false},"HandlerInfo":{"AppName":2},"SoftHairInfo":{"IsUseSoftHair":false}}
[Exif SubIFD] FlashPix Version - 1.00
[Exif SubIFD] Color Space - Undefined
[Exif IFD0] X Resolution - 72 dots per inch
[Exif IFD0] Y Resolution - 72 dots per inch
[Exif IFD0] Resolution Unit - Inch
[File] File Name - MTXX_20190826180013.jpg
[File] File Size - 1971156 bytes
[File] File Modified Date - Mon Aug 26 18:00:14 CST 2019
[JFIF] Version - 1.1
[JFIF] Resolution Units - none
[JFIF] X Resolution - 1 dot
[JFIF] Y Resolution - 1 dot