获取 数码照片的 拍照日期? 数码照片 的文件属性里,会有拍照日期,怎样通过java程序来取得拍照日期?我有大量的数码照片,想根据拍照日期进行下批量重命名,有没有人能教一下? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 拍照的时候就是文件的创建时间 如果不对照片做修改需求的话可以考虑用最后一次修改时间来区分建议一下public long lastModified(){} 目前最简单易用的EXIF信息船里的Java包是metadata-extractor 你可以网上下载 添加到classpath环境变量中读取时间的话 引入刚才那个包然后import com.drew.metadata.*;import com.drew.metadata.exif.*;import com.drew.imaging.jpeg.*;File jpegFile = new File("你照片的路径加名字");Metadata metadata = JpegMetadataReader.readMetadata(jpegFile);Directory exif = metadata.getDirectory(ExifDirectory.class);String time = exif.getString(ExifDirectory.TAG_DATETIME); 我的相片几经转存,所以创建时间已间面目全非了,所以只能获取那个 相片拍照日期。3楼你好,我以下程序有什么问题?:import java.io.File;import com.drew.metadata.*;import com.drew.metadata.exif.*;import com.drew.imaging.jpeg.*;public class A { public static void main(String[] args) { File jpegFile = new File( "c:/aa/1.jpg"); Metadata metadata = null; try { metadata = JpegMetadataReader.readMetadata(jpegFile); } catch (JpegProcessingException e) { e.printStackTrace(); } Directory exif = metadata.getDirectory(ExifDirectory.class); String time = exif.getString(ExifDirectory.TAG_DATETIME); System.out.println(time); System.out.println(ExifDirectory.TAG_DATETIME); }}运行结果是: 269null请再次指教 java 读取图片的 Exif 数据包的下载地址:http://www.drewnoakes.com/code/exif/releases/metadata-extractor-2.2.0.jarpackage com.imgread;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[]) throws FileNotFoundException {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));System.out.println("软 件:" + directory.getString(ExifDirectory.TAG_SOFTWARE)); System.out.println("原始拍摄时间:" + directory.getString(ExifDirectory.TAG_DATETIME_ORIGINAL));System.out.println("数字化时间:" + directory.getString(ExifDirectory.TAG_DATETIME_DIGITIZED));System.out.println("方 向:" + directory.getString(ExifDirectory.TAG_ORIENTATION));System.out.println("图片宽度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_WIDTH));System.out.println("图片高度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_HEIGHT));System.out.println("水平分辨率:" + directory.getString(ExifDirectory.TAG_X_RESOLUTION));System.out.println("垂直分辨率:" + directory.getString(ExifDirectory.TAG_Y_RESOLUTION));System.out.println("垂直分辨率:" + directory.getString(ExifDirectory.TAG_EXPOSURE_BIAS));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");}}} 方法说明:Image Description 图像描述、来源. 指生成图像的工具Artist作者 有些相机可以输入使用者的名字Make 生产者 指产品生产厂家Model 型号 指设备型号Orientation方向 有的相机支持,有的不支持XResolution/YResolution X/Y方向分辨率本栏目已有专门条目解释此问题。ResolutionUnit分辨率单位 一般为PPISoftware软件 显示固件Firmware版本DateTime日期和时间YCbCrPositioning 色相定位ExifOffsetExif信息位置,定义Exif在信息在文件中的写入,有些软件不显示。ExposureTime 曝光时间 即快门速度FNumber光圈系数ExposureProgram曝光程序指程序式自动曝光的设置,各相机不同,可能是Sutter Priority(快门优先)、Aperture Priority(快门优先)等等。ISO speed ratings感光度ExifVersionExif版本DateTimeOriginal创建时间DateTimeDigitized数字化时间ComponentsConfiguration图像构造(多指色彩组合方案)CompressedBitsPerPixel(BPP)压缩时每像素色彩位 指压缩程度ExposureBiasValue曝光补偿。MaxApertureValue最大光圈MeteringMode测光方式, 平均式测光、中央重点测光、点测光等。Lightsource光源 指白平衡设置Flash是否使用闪光灯。FocalLength焦距,一般显示镜头物理焦距,有些软件可以定义一个系数,从而显示相当于35mm相机的焦距 MakerNote(User Comment)作者标记、说明、记录FlashPixVersionFlashPix版本 (个别机型支持)ColorSpace色域、色彩空间ExifImageWidth(Pixel X Dimension)图像宽度 指横向像素数ExifImageLength(Pixel Y Dimension)图像高度 指纵向像素数Interoperability IFD通用性扩展项定义指针和TIFF文件相关,具体含义不详FileSource源文件 Compression压缩比。 finalize()方法的使用问题 Java对象流,大家来看看,帮我讲解下,这里谢谢大家了 java剪切文件 Java编辑器在何方? 关于 Java 类的动态重编译 准备去考SCJP了,谁能指点我报名的程序........ 为何出现这个错误:java.sql.SQLException: 对只读结果集的无效操作: updateString;code如下: 运行java JDK的问题 怎样知道两个java程序是否在一个jvm中? 求推荐内存数据同步框架 jtree怎么设置子节点高度? JAVA数运算后长度被提升?
public long lastModified(){}
读取时间的话 引入刚才那个包
然后
import com.drew.metadata.*;
import com.drew.metadata.exif.*;
import com.drew.imaging.jpeg.*;File jpegFile = new File("你照片的路径加名字");
Metadata metadata = JpegMetadataReader.readMetadata(jpegFile);
Directory exif = metadata.getDirectory(ExifDirectory.class);
String time = exif.getString(ExifDirectory.TAG_DATETIME);
3楼你好,我以下程序有什么问题?:import java.io.File;import com.drew.metadata.*;
import com.drew.metadata.exif.*;
import com.drew.imaging.jpeg.*;public class A {
public static void main(String[] args) { File jpegFile = new File(
"c:/aa/1.jpg"); Metadata metadata = null;
try {
metadata = JpegMetadataReader.readMetadata(jpegFile);
} catch (JpegProcessingException e) {
e.printStackTrace();
} Directory exif = metadata.getDirectory(ExifDirectory.class);
String time = exif.getString(ExifDirectory.TAG_DATETIME);
System.out.println(time);
System.out.println(ExifDirectory.TAG_DATETIME);
}
}
运行结果是:
269
null请再次指教
java 读取图片的 Exif 数据
包的下载地址:http://www.drewnoakes.com/code/exif/releases/metadata-extractor-2.2.0.jarpackage com.imgread;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[]) throws FileNotFoundException {
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));
System.out.println("软 件:" + directory.getString(ExifDirectory.TAG_SOFTWARE));
System.out.println("原始拍摄时间:" + directory.getString(ExifDirectory.TAG_DATETIME_ORIGINAL));
System.out.println("数字化时间:" + directory.getString(ExifDirectory.TAG_DATETIME_DIGITIZED));
System.out.println("方 向:" + directory.getString(ExifDirectory.TAG_ORIENTATION));
System.out.println("图片宽度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_WIDTH));
System.out.println("图片高度:" + directory.getString(ExifDirectory.TAG_EXIF_IMAGE_HEIGHT));
System.out.println("水平分辨率:" + directory.getString(ExifDirectory.TAG_X_RESOLUTION));
System.out.println("垂直分辨率:" + directory.getString(ExifDirectory.TAG_Y_RESOLUTION));
System.out.println("垂直分辨率:" + directory.getString(ExifDirectory.TAG_EXPOSURE_BIAS));
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");
}}} 方法说明:Image Description 图像描述、来源. 指生成图像的工具
Artist作者 有些相机可以输入使用者的名字
Make 生产者 指产品生产厂家
Model 型号 指设备型号
Orientation方向 有的相机支持,有的不支持
XResolution/YResolution X/Y方向分辨率本栏目已有专门条目解释此问题。
ResolutionUnit分辨率单位 一般为PPI
Software软件 显示固件Firmware版本
DateTime日期和时间
YCbCrPositioning 色相定位
ExifOffsetExif信息位置,定义Exif在信息在文件中的写入,有些软件不显示。
ExposureTime 曝光时间 即快门速度
FNumber光圈系数
ExposureProgram曝光程序指程序式自动曝光的设置,各相机不同,可能是Sutter Priority(快门优先)、Aperture Priority(快门优先)等等。
ISO speed ratings感光度
ExifVersionExif版本
DateTimeOriginal创建时间
DateTimeDigitized数字化时间
ComponentsConfiguration图像构造(多指色彩组合方案)
CompressedBitsPerPixel(BPP)压缩时每像素色彩位 指压缩程度
ExposureBiasValue曝光补偿。
MaxApertureValue最大光圈
MeteringMode测光方式, 平均式测光、中央重点测光、点测光等。
Lightsource光源 指白平衡设置
Flash是否使用闪光灯。
FocalLength焦距,一般显示镜头物理焦距,有些软件可以定义一个系数,从而显示相当于35mm相机的焦距 MakerNote(User Comment)作者标记、说明、记录
FlashPixVersionFlashPix版本 (个别机型支持)
ColorSpace色域、色彩空间
ExifImageWidth(Pixel X Dimension)图像宽度 指横向像素数
ExifImageLength(Pixel Y Dimension)图像高度 指纵向像素数
Interoperability IFD通用性扩展项定义指针和TIFF文件相关,具体含义不详
FileSource源文件 Compression压缩比。