2010-10-03 9 views
16


Qualcuno conosce qualche libreria Java opensource per la lettura e scrittura di metadati IPTC in JPEG e TIFF? Ora sto usando Apache Sanselan. Sfortunatamente, può solo leggere IPTC, non scrivere (http://commons.apache.org/sanselan/formatsupport.html).
Sarà molto grato per la vostra assistenza.
Denis.Libreria Java per la lettura e la scrittura di metadati IPTC in JPEG e TIFF

+2

C'è una nuova scelta [qui] (https://github.com/dragon66/icafe) - può leggere, scrivere IPTC, EXIF, ADOBE, ICCProfile, anteprima ecc. – dragon66

risposta

1

Mi sono guardato in passato ma non l'ho trovato. Suggerirei di guardare a un progetto open source come http://sourceforge.net/projects/image-tagger/ e vedere come lo fanno.

+1

Come capisci, Image-tagger usa ExifTool, che è scritto in Perl e ha bisogno di installare Perl, giusto? Se sì, allora non è adatto nel mio caso, poiché la mia applicazione dovrebbe fare affidamento solo su JRE installato. – Storm

0

Per leggere i metadati penso che dovresti dare un'occhiata a "metadata-extractor" - un progetto Open Source (licenza Apache 2.0) che sviluppa una libreria Java per leggere i metadati dai file di immagine.

Al momento, questo progetto può ottenere l'accesso alle seguenti metadati delle immagini:

  • Exif
  • IPTC
  • XMP
  • JFIF/JFXX
  • Profili ICC
  • Photoshop campi

"metadata-extractor" è ospitato allo google code.

Ecco un po 'di codice-esempio semplice per la versione 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()); 
     }   
    } 
} 
+3

Come ho detto, ho bisogno di una libreria per leggere e ** scrivere ** metadati. "Metadata-extractor" supporta solo la lettura. – Storm

5

Date un'occhiata a IIM4J. Utilizzare IIMWriter per scrivere tag IIM IPTC in immagini (jpeg).

+0

Benvenuti in SO, e grazie per aver risposto a una domanda di 2 anni! :-) –

+1

IIM4j è stato spostato in https://github.com/vnesek/nmote-iim4j – Vjeko

4

Il Apache Commons Imaging (formerly sanselan) ha aggiunto il supporto per la scrittura di metadati IPTC nel codice repo SVN per la loro prossima versione. Ho verificato che questo è così nell'ultimo codice di tronco estratto da svn repo. Il codice sembra stabile, quindi spero che l'uscita non sia troppo lontana. Per il mio progetto questo è abbastanza buono.

+0

In realtà ho usato questa libreria in un progetto e ha funzionato per me. È possibile trovare test in giro (come qui http://massapi.com/class/jp/JpegImageParser.html) – Duralumin

3

Questo sembra essere piuttosto una questione vecchia, ma in seguito è alcune informazioni utili:

lettura dei metadati quali EXIF, IPTC..etc può essere fatto utilizzando Apache Commons Imaging (precedentemente Sanselan) o metadati Extractor (da ha disegnato noaks).

scrittura dei metadati può essere fatto utilizzando Apache Commons Imaging utilizzando seguenti classi:

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)

+0

A proposito, esiste una data di rilascio nota per l'imaging comune? – Riduidel

+0

Sì, 12 gennaio 2015;) – eruiz

Problemi correlati