Lees afbeeldingsmetagegevens uit een enkel bestand met Java
Ik wil metadata van afbeeldingen uit een enkel bestand lezen. Ik heb de volgende code geprobeerd:
http://johnbokma.com/java/obtaining-image-metadata.html
Als ik het uitvoer, krijg ik build successful
maar er gebeurt niets.
public class Metadata { public static void main(String[] args) { Metadata meta = new Metadata(); int length = args.length; for ( int i = 0; i < length; i++ ) meta.readAndDisplayMetadata( args[i] ); } void readAndDisplayMetadata( String fileName ) { try { 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])); } } } catch (Exception e) { e.printStackTrace(); } } }
Help alstublieft 🙂
Antwoord
U hebt het pad naar het bestand niet correct opgegeven. De onderstaande wijziging zou dit moeten aangeven!
public static void main(String[] args) { Metadata meta = new Metadata(); int length = args.length; for ( int i = 0; i < length; i++ ) { if (new File(args[i]).exists()) { meta.readAndDisplayMetadata( args[i] ); } else { System.out.println("cannot find file: " + args[i]); } } }
BEWERK – Eenvoudiger codevoorbeeld
We zijn nu statisch aan het definiëren welk bestand we moeten gebruiken.
public static void main(String[] args) { Metadata meta = new Metadata(); String filename = "C:\Users\luckheart\Pictures\Sample Pictures\Koala.jpg"; if (new File(filename).exists()) { meta.readAndDisplayMetadata(filename); } else { System.out.println("cannot find file: " + filename); } }