java jpeg tiff iptc

Biblioteca de Java para leer y escribir metadatos IPTC a JPEG y TIFF



(5)

Esta parece ser una pregunta bastante antigua, pero a continuación hay información útil:

La lectura de metadatos, como EXIF, IPTC, etc., se puede hacer utilizando Apache Commons Imaging (anteriormente Sanselan) o Metadata Extractor (por draw noaks).

la escritura de metadatos se puede hacer usando Apache Commons Imaging usando las siguientes clases:

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 )


¿Alguien sabe alguna biblioteca Java de código abierto para leer y escribir metadatos IPTC a JPEG y TIFF? Ahora estoy usando Apache Sanselan. Desafortunadamente, solo puede leer IPTC, no escribir ( ).
Estaremos muy agradecidos por su ayuda.
Denis.



Para leer metadatos, creo que debería echarle un vistazo a " metadata-extractor ", un proyecto de código abierto (licencia Apache 2.0) que desarrolla una biblioteca Java para leer metadatos de archivos de imagen.

En este momento, este proyecto puede obtener acceso a los siguientes metadatos de imágenes:

  • Exif
  • IPTC
  • XMP
  • JFIF / JFXX
  • Perfiles ICC
  • Campos de photoshop

El " metadata-extractor " está alojado en el código de Google .

Aquí hay un pequeño ejemplo de código sencillo para la versión 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()); } } }


Apache Commons Imaging (anteriormente sanselan) ha agregado soporte para escribir metadatos IPTC en el código svn repo para su próxima versión. He verificado que esto es así en el último código troncal desprotegido de svn repo. El código parece estable, así que espero que un lanzamiento no esté muy lejos. Para mi proyecto esto es suficiente.


Echa un vistazo a IIM4J . Use IIMWriter para escribir etiquetas IPTC IIM en imágenes (jpeg).