Estoy buscando extraer la información relacionada con la cámara de un jpg usando Java. He buscado pero no he podido encontrar una solución a mi problema. Estoy exportando mis fotos de Aperture en mi mac (OS X 10.7) y quiero usar los datos de Aperture que están disponibles en la información del archivo.En Java, ¿cómo puedo extraer la información relacionada con la cámara de una imagen?
¿Alguna idea?
Estoy buscando tener las dimensiones y palabras clave extraídas de fotos como esta: 80.167.88.49/masters/test.html. Actualmente recibo una excepción cuando trato de usar Metadata Extractor. No sé si Aperture está agregando información que no se puede manejar, pero arroja una excepción en todas las fotos de Aperture.
Exception in thread "main" java.lang.NoClassDefFoundError: com/adobe/xmp/XMPException
at com.drew.imaging.jpeg.JpegMetadataReader.extractMetadataFromJpegSegmentReader(Unknown Source)
at com.drew.imaging.jpeg.JpegMetadataReader.readMetadata(Unknown Source)
at com.drew.imaging.ImageMetadataReader.readMetadata(Unknown Source)
at com.drew.imaging.ImageMetadataReader.readMetadata(Unknown Source)
at ImageScaler.main(ImageScaler.java:141)
Caused by: java.lang.ClassNotFoundException: com.adobe.xmp.XMPException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 5 more
Código:
public static void main (String[] args){
File image = new File("/Users/peterla/Desktop/P8214462.jpg");
Metadata metadata = null;
try {
metadata = ImageMetadataReader.readMetadata(image);
} catch (ImageProcessingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Directory directory;
// Keywords
directory = metadata.getDirectory(IptcDirectory.class);
String keywords[] = directory.getStringArray(IptcDirectory.TAG_KEYWORDS);
// Dimensions
directory = metadata.getDirectory(JpegDirectory.class);
String height = directory.getString(JpegDirectory.TAG_JPEG_IMAGE_HEIGHT);
String width = directory.getString(JpegDirectory.TAG_JPEG_IMAGE_WIDTH);
}
Es realmente genial. Muy fácil de implementar con los ejemplos, pero estoy teniendo dificultades para que funcione en mis fotos. Creo que Aperture podría agregar más información de la que el extractor puede manejar. Estoy buscando tener Dimensiones y palabras clave extraídas de fotos como esta: http://80.167.88.49/masters/test.html –
@ Peter Larsen Agregué un código de ejemplo para extraer Cotas y palabras clave. Lo probé en tu imagen de ejemplo y funciona para mí. Dejame saber si necesitas mas ayuda. –
No sé qué está pasando, pero sigo recibiendo el siguiente error en la misma imagen que ha probado. –