Java-библиотека для чтения и записи метаданных IPTC в JPEG и TIFF - PullRequest
17 голосов
/ 04 октября 2010

Кто-нибудь знает какую-нибудь библиотеку Java с открытым исходным кодом для чтения и записи метаданных IPTC в JPEG и TIFF?Сейчас я использую Apache Sanselan.К сожалению, он может только читать IPTC, но не записывать (http://commons.apache.org/sanselan/formatsupport.html).Буду очень признателен за вашу помощь.Денис.

Ответы [ 5 ]

5 голосов
/ 31 октября 2011

Взгляните на IIM4J .Используйте IIMWriter для записи тегов IPTC IIM в изображения (jpeg).

4 голосов
/ 22 июля 2014

Кажется, это довольно старый вопрос, но следующая полезная информация:

чтение метаданных, таких как EXIF, IPTC .. и т. Д. Можно выполнить с помощью Apache Commons Imaging (ранее Sanselan) или Metadata Extractor (by drew noaks).

запись метаданных может быть выполнена с использованием Apache Commons Imaging с использованием следующих классов:

EXIF ​​- ExifRewriter (http://commons.apache.org/proper/commons-imaging/apidocs/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriter.html)

IPTC - JpegIptcRewriter (http://commons.apache.org/proper/commons-imaging/apidocs/org/apache/commons/imaging/formats/jpeg/iptc/JpegIptcRewriter.html)

XMP - JpegXmpRewriter (http://commons.apache.org/proper/commons-imaging/apidocs/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.html)

4 голосов
/ 26 июня 2012

В Apache Commons Imaging (ранее sanselan) добавлена ​​поддержка записи метаданных IPTC в код репозитория svn для их следующего выпуска.Я подтвердил, что это так в последнем коде магистрали, проверенном в SVN-репо.Код кажется стабильным, поэтому я надеюсь, что релиз не слишком далеко.Для моего проекта это достаточно хорошо.

1 голос
/ 06 октября 2010

Я посмотрел себя в прошлом, но не нашел ни одного.Я бы посоветовал взглянуть на проект с открытым исходным кодом, такой как http://sourceforge.net/projects/image-tagger/ и посмотреть, как они это делают.

0 голосов
/ 13 сентября 2011

Для чтения метаданных, я думаю, вам следует взглянуть на " Извлечение метаданных " - проект с открытым исходным кодом (лицензия Apache 2.0), в котором разработана библиотека Java для чтения метаданных из файлов изображений.

На данный момент этот проект может получить доступ к следующим метаданным изображений:

  • Exif
  • IPTC
  • XMP
  • JFIF / JFXX
  • Профили ICC
  • Поля для фотошопа

" экстрактор метаданных " размещен на google code .

Вот небольшой простой пример кода для версии 2.4.0:

public void example() throws Exception {
    File jpegFile = new File("yourJpgFile.jpg");
    Metadata metadata = ImageMetadataReader.readMetadata(jpegFile);

    Iterator directory = metadata.getDirectoryIterator();
    while (directory.hasNext()) {
        Object tag = directory.next();
        if (tag instanceof ExifDirectory) {
            Iterator tags = ((ExifDirectory) tag).getTagIterator();
            while (tags.hasNext()) {
                System.out.println("EXIF: "+tags.next().toString());
            }
        } else if (tag instanceof IptcDirectory) {
            Iterator tags = ((IptcDirectory) tag).getTagIterator();
            while (tags.hasNext()) {
                System.out.println("IPTC: "+tags.next().toString());
            }
        } else if (tag instanceof JpegDirectory) {
            Iterator tags = ((JpegDirectory) tag).getTagIterator();
            while (tags.hasNext()) {
                System.out.println("JPEG: "+tags.next().toString());
            }
        } else {
            System.err.println(tag.getClass());
        }           
    }
}
...