Библиотека Java для чтения и записи метаданных IPTC в JPEG и TIFF


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

Ответы

Ответ 1

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

Ответ 2

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

Ответ 3

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

чтение метаданных, таких как EXIF, IPTC..etc может быть выполнено с использованием Apache Commons Imaging (ранее Sanselan) или экстрактора метаданных (путем рисования 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

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

Ответ 5

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

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

  • Exif
  • IPTC
  • XMP
  • JFIF/JFXX
  • Профили ICC
  • Поля Photoshop

" metadata-extractor размещен в код google.

Вот простой пример кода для версии 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());
        }           
    }
}