本文写于工作中,因为需要查看手机照片的Exif信息,本来想自己写发现太多要去实现的东西,so想到了拿来主义,网上有现成的API干嘛放着不用呢,可以搜索Metadata这个API,其官网有下载,参考其Doc文档就可以很轻松的实现该功能。
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 directory
ExifSubIFDDirectory directory = metadata.getDirectory(ExifSubIFDDirectory.class);
// query the tag's value
Date 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
分享到:
相关推荐
一旦引入了这个库,你可以使用以下步骤来读取Exif信息: 1. 创建一个`Metadata`对象,用于存储所有提取出的元数据。 ```java import com.drewnoakes.metadata萃取器.Metadata; Metadata metadata = new Metadata();...
在Java编程中,元数据(Metadata)是指关于数据的数据,它提供有关文件、数据库记录、类、方法等的附加信息,但不直接构成这些实体的实际内容。元数据可以帮助理解和处理这些对象,例如,图片的元数据可能包含拍摄...
接下来,我们来看一下如何使用metadata-extractor库读取Exif信息的代码示例: ```java import com.drewnoakes.metadata.exif.ExifIFD; import com.drewnoakes.metadata.exif.MakerNotesDirectory; import ...
5. **JavaScript exif-js**:对于前端开发,JavaScript库`exif-js`可以在浏览器环境中读取Exif信息: ```javascript var EXIF = require('exif-js'); EXIF.getData(document.getElementById('image'), function()...
2. **读取EXIF信息**: 使用`MetadataExtractor`,你可以轻松地读取图片文件中的EXIF元数据。以下是一个简单的示例代码,演示如何读取并打印所有EXIF标签: ```java import ...
2. **使用Java读取EXIF信息**: - Java中没有内置的库来直接处理EXIF信息,但可以通过第三方库如`metadata-extractor`来实现。 - `metadata-extractor`是由Drew Noakes开发的一个强大库,它可以解析多种图像和视频...
本文将通过一个具体的示例来展示如何使用 MediaUtil 对图片的 EXIF 信息进行修改。 #### 二、MediaUtil简介 MediaUtil 是一个开源的 Java 库,它提供了一系列的功能用于处理多媒体数据,特别是针对图像处理方面...
Exiv2读取图像扩展属性,内含exiv2-0.26-trunk.tar主程序源码,相关编译所需的包libexpat-R_2_1_0、zlib-1.2.9。可自行编译。方便快捷的使用在visual studio 的任何版本上。 图片元数据(Metadata) 是嵌入到图片...
ExifRead是一个轻量级库,专门用于读取EXIF数据。安装`exifread`库后,可以使用以下代码查看EXIF: ```python from exifread import tags with open('image.jpg', 'rb') as f: for tag in tags.keys(): if ...
这些jar包包含了实现Exif读取和操作功能的类和方法,它们可能是像Apache Commons Imaging(以前称为Sanselan)、 Metadata-Extractor 或 tjio 这样的开源库。这些库提供了API,使得开发者可以方便地访问和修改图像...
实现这样的类,我们需要使用C++的文件操作来读取JPEG或TIFF文件,并使用位操作和二进制流来处理Exif数据。这通常涉及到解析文件头,查找Exif IFD(Image File Directory),然后遍历IFD中的条目来获取每个参数。 `...
开源图片详细信息提取metadata-extractor,一个很好的开源类库metadata-extractor处理jpeg图片
然而,`ImageIO`并不直接支持读取EXIF数据,所以我们需要引入额外的库,如`Apache Commons Imaging`(以前称为`Apache Commons Sanselan`)或`metadata-extractor`。这两个库都提供了方便的API来处理图像元数据,...
在给定的压缩包文件中,虽然没有具体列出jar包的名称,但通常情况下,用于读取Exif信息的库可能包括`Apache Commons Imaging`(原名`Sanselan`)、`metadata-extractor`或`JHead`等。这些库提供了方便的API,让我们...
完成这一步后,你就可以在你的代码中调用metadata-extractor的API来读取文件的元数据了。 下面是一个简单的使用示例: ```java import com.drew.metadata.Metadata; import ...
首先,为了读取EXIF信息,我们需要一个库,如`metadata-extractor-2.3.1.jar`,这是一个开源的Java库,用于从图像文件中提取元数据,包括EXIF信息。将其添加到项目的类路径中,可以使用Maven或Gradle将其作为依赖...
在IT领域,尤其是在图像处理和数字媒体管理中,"mediautil+metadata-extractor"是一个用于提取和查看EXIF(Exchangeable Image File Format)信息的工具。这个工具包含两个核心组件:`meduautil-1.0.jar`和`metadata...
ExifPilot的界面友好,信息读取齐全,这意味着它不仅能够显示所有标准的Exif标签,还可能包括制造商特定的元数据,如佳能的 maker notes 或尼康的 Nikon Capture NX 数据。此外,它可能还包括IFD(Image File ...
在Java中,可以借助像`Apache Commons Imaging`(以前称为`Commons Sanselan`)或者`metadata-extractor`这样的库来读取和修改Exif信息。这些库提供了方便的API,让我们能够轻松地访问和修改图片的Exif标签。 `...