数码照片 的文件属性里,会有拍照日期,怎样通过java程序来取得拍照日期?我有大量的数码照片,想根据拍照日期进行下批量重命名,有没有人能教一下?

解决方案 »

  1.   

    拍照的时候就是文件的创建时间 如果不对照片做修改需求的话可以考虑用最后一次修改时间来区分建议一下
    public long lastModified(){}
      

  2.   

    目前最简单易用的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.   

    我的相片几经转存,所以创建时间已间面目全非了,所以只能获取那个 相片拍照日期。
    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请再次指教
      

  4.   


    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压缩比。