- 包的下载地址:
- http://www.drewnoakes.com/code/exif/releases/metadata-extractor-2.2.0.jar
- package com.imgread;
- import com.drew.metadata.*;
- import com.drew.metadata.exif.*;
- import com.drew.imaging.jpeg.JpegProcessingException;
- import java.io.*;
- import java.util.Iterator;
- public class EXIFReader {
- public static void main(String args[]) throws FileNotFoundException {
- File f = new File("c:\\b.jpg");
- try {
- ExifReader er = new ExifReader(f);
- Metadata exif = er.extract();
- Iterator itr = exif.getDirectoryIterator();
- while (itr.hasNext()) {
- Directory directory = (Directory) itr.next();
- System.out.println("EXIF版本:" + directory.getString(ExifDirectory.TAG_EXIF_VERSION));
- System.out.println("相机品牌:" + directory.getString(ExifDirectory.TAG_MAKE));
- System.out.println("相机型号:" + directory.getString(ExifDirectory.TAG_MODEL));
- System.out.println("光 圈 值:" + directory.getString(ExifDirectory.TAG_FNUMBER));
- System.out.println("快 門:" + directory.getString(ExifDirectory.TAG_EXPOSURE_TIME));
- System.out.println("感 光 度:" + directory.getString(ExifDirectory.TAG_ISO_EQUIVALENT));
- System.out.println("软 件:" + directory.getString(ExifDirectory.TAG_SOFTWARE));
- System.out.println("原始拍摄时间:" + directory.getString(ExifDirectory.TAG_DATETIME_ORIGINAL));
- System.out.println("数字化时间:" + directory.getString(ExifDirectory.TAG_DATETIME_DIGITIZED));
- System.out.println("方 向:" + directory.getString(ExifDirectory.TAG_ORIENTATION));
- System.out.println("图片宽度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_WIDTH));
- System.out.println("图片高度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_HEIGHT));
- System.out.println("水平分辨率:" + directory.getString(ExifDirectory.TAG_X_RESOLUTION));
- System.out.println("垂直分辨率:" + directory.getString(ExifDirectory.TAG_Y_RESOLUTION));
- System.out.println("垂直分辨率:" + directory.getString(ExifDirectory.TAG_EXPOSURE_BIAS));
- break;
- //获得全部metadata
- /*Iterator tags = directory.getTagIterator();
- while (tags.hasNext()) {
- Tag tag = (Tag) tags.next();
- System.out.println(tag);
- }
- if (directory.hasErrors()) {
- Iterator errors = directory.getErrors();
- while (errors.hasNext()) {
- System.out.println("ERROR: " + errors.next());
- }
- }*/
- }
- } catch (JpegProcessingException e) {
- System.err.println("not jpeg file");
- }
- }
- }
- 方法说明:
- Image Description 图像描述、来源. 指生成图像的工具
- Artist作者 有些相机可以输入使用者的名字
- Make 生产者 指产品生产厂家
- Model 型号 指设备型号
- Orientation方向 有的相机支持,有的不支持
- XResolution/YResolution X/Y方向分辨率本栏目已有专门条目解释此问题。
- ResolutionUnit分辨率单位 一般为PPI
- Software软件 显示固件Firmware版本
- DateTime日期和时间
- YCbCrPositioning 色相定位
- ExifOffsetExif信息位置,定义Exif在信息在文件中的写入,有些软件不显示。
- ExposureTime 曝光时间 即快门速度
- FNumber光圈系数
- ExposureProgram曝光程序指程序式自动曝光的设置,各相机不同,可能是Sutter Priority(快门优先)、Aperture Priority(快门优先)等等。
- ISO speed ratings感光度
- ExifVersionExif版本
- DateTimeOriginal创建时间
- DateTimeDigitized数字化时间
- ComponentsConfiguration图像构造(多指色彩组合方案)
- CompressedBitsPerPixel(BPP)压缩时每像素色彩位 指压缩程度
- ExposureBiasValue曝光补偿。
- MaxApertureValue最大光圈
- MeteringMode测光方式, 平均式测光、中央重点测光、点测光等。
- Lightsource光源 指白平衡设置
- Flash是否使用闪光灯。
- FocalLength焦距,一般显示镜头物理焦距,有些软件可以定义一个系数,从而显示相当于35mm相机的焦距 MakerNote(User Comment)作者标记、说明、记录
- FlashPixVersionFlashPix版本 (个别机型支持)
- ColorSpace色域、色彩空间
- ExifImageWidth(Pixel X Dimension)图像宽度 指横向像素数
- ExifImageLength(Pixel Y Dimension)图像高度 指纵向像素数
- Interoperability IFD通用性扩展项定义指针和TIFF文件相关,具体含义不详
- FileSource源文件 Compression压缩比。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步