1 packageexiftest;2
3 importjava.io.BufferedInputStream;4 importjava.io.BufferedOutputStream;5 importjava.io.File;6 importjava.io.FileInputStream;7 importjava.io.FileOutputStream;8 importjava.io.InputStream;9 importjava.io.InputStreamReader;10 importjava.io.OutputStream;11 importjava.text.SimpleDateFormat;12 importjava.util.Date;13 importjava.util.Iterator;14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 importmediautil.image.jpeg.Entry;31 importmediautil.image.jpeg.Exif;32 importmediautil.image.jpeg.LLJTran;33 importmediautil.image.jpeg.LLJTranException;34 importnet.sf.json.JSONObject;35
36 importcom.drew.imaging.jpeg.JpegMetadataReader;37 importcom.drew.metadata.Directory;38 importcom.drew.metadata.Metadata;39 importcom.drew.metadata.Tag;40
41 /**
42 * 测试用于读取图片的EXIF信息43 *@authorWinter Lau44 */
45 public classExiftest {46
47 /**
48 * 经纬度转换 度分秒转换49 *@parampoint 坐标点50 *@return
51 */
52 public staticString pointToLatlong (String point ) {53 Double du = Double.parseDouble(point.substring(0, point.indexOf("°")).trim());54 Double fen = Double.parseDouble(point.substring(point.indexOf("°")+1, point.indexOf("'")).trim());55 Double miao = Double.parseDouble(point.substring(point.indexOf("'")+1, point.indexOf("\"")).trim());56 Double duStr = du + fen / 60 + miao / 60 / 60;57 returnduStr.toString();58 }59 public static void main(String[] args) throwsException {60 //File jpegFile = new File("E:\\psresource\\img\\photos\\images\\20140627_140048.jpg");
61 File jpegFile = new File("E:\\psresource\\img\\photos\\wwd\\iphone\\20140521.jpg");62 Metadata metadata =JpegMetadataReader.readMetadata(jpegFile);63
64
65
66 JSONObject jsonObject = newJSONObject();67
68 Double lat = null;69 Double lon=null;70 Date date = null;71 for(Directory directory : metadata.getDirectories()){72 for(Tag tag : directory.getTags()){73 System.out.println(tag);74
75 String tagname =tag.getTagName();76 if(tagname.equals("GPS Longitude")){77 System.out.println(pointToLatlong(tag.getDescription()));78 lon =Double.valueOf(pointToLatlong(tag.getDescription()));79 jsonObject.accumulate("lon", lon);80 }81 else if (tagname.equals("GPS Latitude")) {82 System.out.println(pointToLatlong(tag.getDescription()));83 lat =Double.valueOf(pointToLatlong(tag.getDescription()));84 jsonObject.accumulate("lat", lat);85 }86 if(tagname.equals("Date/Time")){87 System.out.println(tag.getDescription());88 SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd hh:mm:ss");89
90 Date date2 =sdf.parse(tag.getDescription());91 Long dateLong =date2.getTime();92 jsonObject.accumulate("time", dateLong);93
94 }95 }96 System.out.println(jsonObject.toString());97 }98
99
100 }101 }