java读取图片的(尺寸、拍摄日期、标记)等EXIF信息

1.metadata-extractor是 处理图片EXIF信息的开源项目,最新代码及下载地址:https://github.com/drewnoakes/metadata-extractor

2.本demo工程的代码(包含所需的jar包)下载地址:http://files.cnblogs.com/files/haha12/readPic.rar

主要代码如下:

package com.test;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;

import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.imaging.jpeg.JpegProcessingException;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.Tag;

public class ReadPic {

    /**
     * 导入标签,使用metadata-extractor
     *
     * @param args
     */
    public static void main(String[] args) {
        readPic();
    }

    /**
     * 处理 单张 图片
     *
     * @return void
     * @date 2015-7-25 下午7:30:47
     */
    private static void readPic() {
        File jpegFile = new File("d:\\002.jpg");
        Metadata metadata;
        try {
            metadata = JpegMetadataReader.readMetadata(jpegFile);
            Iterator<Directory> it = metadata.getDirectories().iterator();
            while (it.hasNext()) {
                Directory exif = it.next();
                Iterator<Tag> tags = exif.getTags().iterator();
                while (tags.hasNext()) {
                    Tag tag = (Tag) tags.next();
                    System.out.println(tag);

                }

            }
        } catch (JpegProcessingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

控制台打印信息如下:

[Exif IFD0] Software - Picasa
[Exif IFD0] Date/Time - 2015:02:15 12:09:22
[Exif IFD0] Windows XP Keywords - 白色;蓝色;颜色白
[Exif IFD0] Padding - [2060 bytes]
[Xmp] XMP Value Count - 13
[Xmp] Subject - 白色 蓝色 颜色白
[JFIF] Version - 1.1
[JFIF] Resolution Units - inch
[JFIF] X Resolution - 96 dots
[JFIF] Y Resolution - 96 dots
[File] File Name - 002.jpg
[File] File Size - 51798 bytes
[File] File Modified Date - Mon Jul 27 09:55:42 CST 2015
[IPTC] Enveloped Record Version - 4
[IPTC] Coded Character Set - UTF-8
[IPTC] Application Record Version - 4
[IPTC] Keywords - 白色;蓝色;颜色白
[Photoshop] Caption Digest - -68 -113 27 105 -101 114 34 -54 -56 20 16 108 64 37 -42 -58
[Exif SubIFD] Exif Version - 2.20
[Exif SubIFD] Unique Image ID - f9b137287bef9686897c8a258ffd089b
[Exif SubIFD] Padding - [2060 bytes]
[JPEG] Compression Type - Baseline
[JPEG] Data Precision - 8 bits
[JPEG] Image Height - 870 pixels
[JPEG] Image Width - 580 pixels
[JPEG] Number of Components - 3
[JPEG] Component 1 - Y component: Quantization table 0, Sampling factors 2 horiz/2 vert
[JPEG] Component 2 - Cb component: Quantization table 1, Sampling factors 1 horiz/1 vert
[JPEG] Component 3 - Cr component: Quantization table 1, Sampling factors 1 horiz/1 vert

时间: 2024-10-09 16:48:14

java读取图片的(尺寸、拍摄日期、标记)等EXIF信息的相关文章

积跬步,聚小流------java获取图片的尺寸

在一篇文章中获取到通过例如以下两种方式进行获取: 1.使用ImageReader进行获取: 2.使用BufferedImage进行获取: 而且经过验证ImageReader进行操作的耗时远远低于BufferedImage操作的耗时,详情可查看链接查看原文 然后依据应用我自己在项目中略做修改,在这里记录下: <span style="font-size:14px;">package com.jzba.utils; import java.awt.image.BufferedI

java 读取图片色深

问题: 想写一个小程序可读取图片的色深(bit-depth).网上有一些软件可完成这个功能,但是我想把程序做成一个可移植的插件. 本想用c写的,但实在麻烦,最后选择java,与很多方法不用自己写,速度快. 最后打包成一个jar包,只要装了jdk就可以在控制台运行. 我用的是MYECLIPSE,步骤如下:1.创建一个工程: 2.创建一个java class: 3.程序包含两个类getinfo.java 和 methodclass.java: getinfo.java包含main()方法,代码如下:

python 读取图片的尺寸、分辨率

#需要安装PIL模块 #encoding=gbk#-------------------------------------------------------------------------------# Name: picRead# Purpose:## Author: wangchao## Created: 27/06/2014# Copyright: (c) wangchao 2014# Licence: <your licence>#-----------------------

Java读取图片和EXIF信息

后台需要读取客户端上传的图片,记录图片长宽,客户端以后就可以根据记录的长宽,展示图片. 正常的图片,读取很简单,代码如下: BufferedImage originalImg = ImageIO.read(file.getInputStream()); int originalwidth = originalImg.getWidth(); //上传图片的宽 int originalheight = originalImg.getHeight(); //上传图片的高 但是,有一种情况,客户端拍摄的

java截取图片部分尺寸

链接地址:http://blog.sina.com.cn/s/blog_407a68fc0100nrbl.html package util; import java.awt.Rectangle;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.util.Iterator; import java

Java读取图片像素和大小

package com.aa.promotion.dao.generalize; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.channels.FileChannel; import javax.im

java读取图片文件 写入图片

Java读取图片并修改像素,创建图片

public void replaceImageColor(String file, Color srcColor, Color targetColor) throws IOException{ URL http; if(file.trim().startsWith("https")){ http = new URL(file); HttpsURLConnection conn = (HttpsURLConnection) http.openConnection(); conn.set

java 获取图片大小(尺寸)

1,获取本地图片大小(尺寸) File picture=new File(strSrc);BufferedImage sourceImg=ImageIO.read(new FileInputStream(picture)); sourceImg.getWidth(); sourceImg.getHeight(); 2,获取网络图片大小(尺寸) BufferedImage sourceImg=ImageIO.read(new URL(strSrc).openStream()); sourceImg