java能否获取jpg图片的Exif信息? 不懂,帮你关注一下;)Exif是什么信息? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以看看javax.imageio 中的东西。 http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/jpeg/ Exif 是图片的信息,数码相机生成照片后都会留下此信息 scbb(星际Baby) :有没有具体使用方法提供? 使用后报如下错误?JpegException: Premature EOF in JPEG file at JpegHeaders.read2bytes(JpegHeaders.java: at JpegHeaders.getXMP(JpegHeaders.java:125) at JpegHeaders.main(JpegHeaders.java:549) 试试用jai?http://java.sun.com/products/java-media/jai/forDevelopers/jai-imageio-1_0-docs/com/sun/media/imageio/plugins/tiff/EXIFTIFFTagSet.html 使用这个jarhttp://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"); } }} 多谢 scbb(星际Baby) 兄,问题解决! java se编程 多线程问题 Vector只是放了引用吗? 一个关于multibox的问题,分不够就加!! 如何打印符号"\" 急!!!请大家帮帮忙! 求救J2ee 开发包的下载和安装问题。感谢! 浮点数能为零吗? 高分求java的API类库,最好是中文解释的!急急急!!! 简单问题送高分90.class文件如何存放呢?(在线等待,立马送分) 交流 tomcat环境下applet的调用问题 请问如何知道这panel中的一个component有焦点啊.?
JpegException: Premature EOF in JPEG file
at JpegHeaders.read2bytes(JpegHeaders.java:
at JpegHeaders.getXMP(JpegHeaders.java:125)
at JpegHeaders.main(JpegHeaders.java:549)
http://java.sun.com/products/java-media/jai/forDevelopers/jai-imageio-1_0-docs/com/sun/media/imageio/plugins/tiff/EXIFTIFFTagSet.html
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");
}
}}