Преобразование метаданных изображения в JSON в Java - PullRequest
2 голосов
/ 27 марта 2012

Как я могу прочитать метаданные изображения JPG в Java, используя BufferedImage, а затем закодировать его как JSON?

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

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 голос
/ 16 апреля 2012

В вашем случае проблема с BufferedImage является проблемой, поскольку она содержит только данные визуального растрового изображения. Когда BufferedImage создается из данных JPG, все метаданные Exif / IPTC / Jfif / etc удаляются.

Итак, вам нужно разобраться с исходными данными JPG и продолжить работу, как описано Кеннетом.

Библиотека извлечения метаданных не генерирует JSON напрямую, поэтому вам потребуется найти другую библиотеку, чтобы обеспечить это.

...