首先介绍一下什么是EXIF,EXIF是 Exchangeable Image File的缩写,这是一种专门为数码相机照片设定的格式。这种格式可以用来记录数字照片的属性信息,例如相机的品牌及型号、相片的拍摄时间、拍摄时所设置的光圈大小、快门速度、ISO等等信息。除此之外它还能够记录拍摄数据,以及照片格式化方式,这样就可以输出到兼容EXIF格式的外设上,例如照片打印机等。
目前最常见的支持EXIF信息的图片格式是JPG,很多的图像工具都可以直接显示图片的EXIF信息,包括现在的一些著名的相册网站也提供页面用于显示照片的EXIF信息。本文主要介绍Java语言如何读取图像的EXIF信息,包括如何根据EXIF信息对图像进行调整以适合用户浏览。
目前最简单易用的EXIF信息处理的Java包是Drew Noakes写的metadata-extractor,Maven坐标如下:
<dependency> <groupId>com.drewnoakes</groupId> <artifactId>metadata-extractor</artifactId> <version>2.8.1</version> </dependency>
拍摄设备的型号便是EXIF信息中的其中一个。下面我们给出一段代码将这个图片的所有的EXIF信息全部打印出来。
package com.melonlee.api.utils;import java.io.File;
import java.util.Iterator;import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;public class TestImg {
public static void main(String[] args) throws Exception { File jpegFile = new File("/Users/Melon/Downloads/xiaomian.jpg"); Metadata metadata = JpegMetadataReader.readMetadata(jpegFile); Iterable<Directory> dis = metadata.getDirectories(); for (Directory directory : metadata.getDirectories()) { for (Tag tag : directory.getTags()) { System.out.println(tag); } } // Iterator tags = (Iterator) metadata.getDirectories(); while (dis.iterator().hasNext()) { } }
}
打印信息:
[JFIF] Version - 1.1
[JFIF] Resolution Units - none
[JFIF] X Resolution - 1 dot
[JFIF] Y Resolution - 1 dot
[JpegComment] JPEG Comment - CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 95
[JPEG] Compression Type - Baseline
[JPEG] Data Precision - 8 bits
[JPEG] Image Height - 1080 pixels
[JPEG] Image Width - 1920 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
[File] File Name - 1.jpg
[File] File Size - 871759 bytes
[File] File Modified Date - Tue Oct 20 14:49:50 CST 2015
--EOF--
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于