https://github.com/drewnoakes/metadata-extractor
maven
<dependency>
<groupId>com.drewnoakes</groupId>
<artifactId>metadata-extractor</artifactId>
<version>2.16.0</version>
</dependency>
import com.drew.imaging.*;
import com.drew.metadata.*;
輸出全部值
Metadata metadata = ImageMetadataReader.readMetadata(file);
for (Directory directory : metadata.getDirectories()) {
System.out.println(directory.getName());
for (Tag tag : directory.getTags()) {
String tagName = tag.getTagName();
String description = tag.getDescription();
System.out.println(tagName + " : " + description);
}
System.out.println("----------------");
}
拍攝時間
Metadata metadata = ImageMetadataReader.readMetadata(file);
Directory directory = metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);
if (directory != null && directory.containsTag(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL)) {
Date date = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);
System.out.println(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(date));
}
實測某些照片無法找出拍攝日期(ORIGINAL)
但在電腦中是有的
網上查詢也有 https://www.metadata2go.com/
程式 print 出來卻不一致
這邊有一併顯示 Photo Viewer
但這個日期不對
而其他 Directory 與 Tag 也都沒有日期了
因此大概是 API 沒寫好?
總之這個工具對我來說沒用了