2012-03-27 56 views

回答

1

的MetadataExtractor可用于提取元数据的Exif一样,IPTC ...多,http://www.drewnoakes.com/code/exif/

下面的代码将打印在文件中找到的元数据:

Metadata metadata = ImageMetadataReader.readMetadata(file); 
Iterable<Directory> directories = metadata.getDirectories(); 
Iterator<Directory> iterator = directories.iterator(); 
while(iterator.hasNext()) { 
    Directory dir = iterator.next(); 
    Collection<Tag> tags = dir.getTags(); 
    for(Tag tag: tags) { 
     System.out.println(tag.getTagName() + " " + tag.getDescription() + " " + tag.getTagTypeHex()); 
    } 
} 

该代码使用了最新版本候选人,http://code.google.com/p/metadata-extractor/downloads/detail?name=metadata-extractor-2.5.0-RC3.zip&can=2&q=

至少,这是开始提取,我认为这是一个很难的部分。

1

在你的情况下,处理BufferedImage是一个问题,因为它只包含可视光栅图像数据。当从JPG数据创建BufferedImage时,所有Exif/IPTC/Jfif/etc元数据都被剥离。

因此,您需要处理原始JPG数据,并按照Kennet的详细说明进行操作。

元数据提取器库不会直接生成JSON,因此您需要找到另一个库来提供此操作。