java 读取 jpeg_Java 遍历文件下jpg图片并解析图片

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 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值