Ответ 1
Взгляните на IIM4J. Используйте IIMWriter
для записи тегов IPTC IIM в (jpeg) изображения.
Кто-нибудь знает какую-либо библиотеку Java с открытым исходным кодом для чтения и записи метаданных IPTC в JPEG и TIFF? Теперь я использую Apache Sanselan. К сожалению, он может читать только IPTC, а не писать ( http://commons.apache.org/sanselan/formatsupport.html).
Будем очень благодарны за вашу помощь.
Denis.
Взгляните на IIM4J. Используйте IIMWriter
для записи тегов IPTC IIM в (jpeg) изображения.
Apache Commons Imaging (ранее sanselan) добавила поддержку для написания метаданных IPTC в коде svn repo для следующей версии. Я проверил, что это так в последнем коде trunk, извлеченном из svn repo. Код кажется стабильным, поэтому я надеюсь, что релиз не слишком далеко. Для моего проекта это достаточно хорошо.
Это, кажется, довольно старый вопрос, но следуя полезной информации:
чтение метаданных, таких как 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)
Я смотрел сам в прошлое, но не нашел его. Я бы предложил посмотреть проект с открытым исходным кодом, например http://sourceforge.net/projects/image-tagger/ и посмотреть, как они это делают.
Для чтения метаданных, я думаю, вам стоит взглянуть на " metadata-extractor" - проект с открытым исходным кодом (лицензия Apache 2.0), который разрабатывается библиотека Java для чтения метаданных из файлов изображений.
В настоящий момент этот проект может получить доступ к следующим метаданным изображений:
" 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());
}
}
}