首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

用Metadata回读取Exif信息

2012-08-25 
用Metadata来读取Exif信息1.读取文件可以直接通过File去读取一个文件File file new File(path)Metadata

用Metadata来读取Exif信息
1.读取文件
可以直接通过File去读取一个文件

File file = new File(path);Metadata metadata = ImageMetadataReader.readMetadata(file);

如果确定了图片的格式,也可以用专门的图片格式的Reader来进行读取,比如JpegMetadataReader来读取。

其实,你也可以用stream来读取
Metadata metadata = ImageMetadataReader.readMetadata(stream, waitForBytes);

这里可以方便的从网络侧去读取一个图片信息。


2.得到Exif的标签
每个照片里面可能没有,也可能不止有一个Exif的标签信息。
可以全部去获取
for (Directory directory : metadata.getDirectories()) {    for (Tag tag : directory.getTags()) {        System.out.println(tag);    }}

也可以去获取某些特定的Exif信息
// obtain the Exif directoryExifSubIFDDirectory directory = metadata.getDirectory(ExifSubIFDDirectory.class);// query the tag's valueDate date = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME);

如果需要得到的值更符合人们的习惯,或者是认为得到的值都是String类型,可以考虑用descriptor去获取
ExifSubIFDDirectory directory2 = metadata.getDirectory(ExifSubIFDDirectory.class);ExifSubIFDDescriptor descriptor = new ExifSubIFDDescriptor(directory2);//Console: Aperture priority 光圈优先System.out.println(descriptor.getExposureProgramDescription());


参考文档http://www.drewnoakes.com/code/exif/

Doc文档地址http://metadata-extractor.googlecode.com/git/Javadoc/index.html

热点排行