Desidero trovare la "Data di acquisizione" di un'immagine e non "Data di modifica" o "Data di creazione". Anche se ho trovato alcuni link su StackOverflow, ma nessuno può recuperarlo. Il formato dell'immagine è: tiff e RAW.Data di acquisizione di un'immagine
Utilizzando javax.imageio
, ho scritto il programma di seguito, ma non stampa nulla. Il che significa che non v'è alcuna disposizione reader
File file = new File(fileName);
ImageInputStream iis = ImageIO.createImageInputStream(file);
Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
if (readers.hasNext()) {
// pick the first available ImageReader
ImageReader reader = readers.next();
// attach source to the reader
reader.setInput(iis, true);
// read metadata of first image
IIOMetadata metadata = reader.getImageMetadata(0);
String[] names = metadata.getMetadataFormatNames();
int length = names.length;
for (int i = 0; i < length; i++) {
System.out.println("Format name: " + names[ i ]);
displayMetadata(metadata.getAsTree(names[i]));
}
}
Utilizzando le librerie Java di base, c'è un metodo per accedere a "data di presa" e non "data di creazione" o "data di modifica". Ulteriori informazioni data taken
è disponibile come posso vedere che da proprietà immagine in OS
EDIT: Si scopre che readers
iteratore non ha nulla con esso. cioè la dimensione 0. Sta succedendo solo per immagini tiff e raw. Funziona bene con jpeg
Avete esaminato gli alberi di metadati per vedere se è possibile trovare la data? Pubblica ciò che hai trovato finora. –
Sì. Non stampa nulla. Se l'immagine era jpeg, ha stampato informazioni come la compressione ecc. Ma non data la data – Jatin
Forse il lettore è impostato per ignorare i metadati: 'System.out.println (reader.isIgnoringMetadata());' – Vulcan