相關連結http://topic.csdn.net/t/20030925/14/2299139.html 使用这个jar
http://www.drewnoakes.com/code/exif/metadata-extractor-2.1.jar
也有源代码
http://www.drewnoakes.com/code/exif/metadata-extractor-src-2.1.jar
然后
import com.drew.metadata.*;
import com.drew.metadata.exif.*;
import com.drew.imaging.jpeg.JpegProcessingException;
import java.io.*;
import java.util.Iterator;
public class EXIFReader {
public static void main(String args[]) {
File f = new File("c:\\b.jpg");
try {
ExifReader er = new ExifReader(f);
Metadata exif = er.extract();
Iterator itr = exif.getDirectoryIterator();
while(itr.hasNext()) {
Directory directory = (Directory)itr.next();
/*
System.out.println("EXIF版本 " + directory.getString(ExifDirectory.TAG_EXIF_VERSION));
System.out.println("相机品牌 " + directory.getString(ExifDirectory.TAG_MAKE));
System.out.println("相机型号 " + directory.getString(ExifDirectory.TAG_MODEL));
System.out.println("光圈 " + directory.getString(ExifDirectory.TAG_FNUMBER));
System.out.println("快門 " + directory.getString(ExifDirectory.TAG_EXPOSURE_TIME));
System.out.println("感光度 " + directory.getString(ExifDirectory.TAG_ISO_EQUIVALENT));
break;*/
//获得全部metadata
Iterator tags = directory.getTagIterator();
while (tags.hasNext()) {
Tag tag = (Tag)tags.next();
System.out.println(tag);
}
if (directory.hasErrors()) {
Iterator errors = directory.getErrors();
while (errors.hasNext()) {
System.out.println("ERROR: " + errors.next());
}
}
}
} catch (JpegProcessingException e) {
System.err.println("not jpeg file");
} catch (FileNotFoundException ex) {
System.err.println("file not found");
}
}
}
關於 Iterator 這行我用eclipse去執行它前面總是有驚嘆號是我有什麼檔案沒讀到還是有什麼問題
他內容寫Iterator is a raw type. References to generic type Iterator <E> should be parameterized
請問要怎麼寫才能正確執行
程式碼長的什麼樣子
http://www.drewnoakes.com/code/exif/metadata-extractor-2.1.jar
也有源代码
http://www.drewnoakes.com/code/exif/metadata-extractor-src-2.1.jar
然后
import com.drew.metadata.*;
import com.drew.metadata.exif.*;
import com.drew.imaging.jpeg.JpegProcessingException;
import java.io.*;
import java.util.Iterator;
public class EXIFReader {
public static void main(String args[]) {
File f = new File("c:\\b.jpg");
try {
ExifReader er = new ExifReader(f);
Metadata exif = er.extract();
Iterator itr = exif.getDirectoryIterator();
while(itr.hasNext()) {
Directory directory = (Directory)itr.next();
/*
System.out.println("EXIF版本 " + directory.getString(ExifDirectory.TAG_EXIF_VERSION));
System.out.println("相机品牌 " + directory.getString(ExifDirectory.TAG_MAKE));
System.out.println("相机型号 " + directory.getString(ExifDirectory.TAG_MODEL));
System.out.println("光圈 " + directory.getString(ExifDirectory.TAG_FNUMBER));
System.out.println("快門 " + directory.getString(ExifDirectory.TAG_EXPOSURE_TIME));
System.out.println("感光度 " + directory.getString(ExifDirectory.TAG_ISO_EQUIVALENT));
break;*/
//获得全部metadata
Iterator tags = directory.getTagIterator();
while (tags.hasNext()) {
Tag tag = (Tag)tags.next();
System.out.println(tag);
}
if (directory.hasErrors()) {
Iterator errors = directory.getErrors();
while (errors.hasNext()) {
System.out.println("ERROR: " + errors.next());
}
}
}
} catch (JpegProcessingException e) {
System.err.println("not jpeg file");
} catch (FileNotFoundException ex) {
System.err.println("file not found");
}
}
}
關於 Iterator 這行我用eclipse去執行它前面總是有驚嘆號是我有什麼檔案沒讀到還是有什麼問題
他內容寫Iterator is a raw type. References to generic type Iterator <E> should be parameterized
請問要怎麼寫才能正確執行
程式碼長的什麼樣子
Iterator<Tag> tags = directory.getTagIterator();
同时,将directory.getTagIterator(); 方法声明修改为类似public Iterator<Tag> getTagIterator() 这样