首页 > 代码库 > java读取照片信息 获取照片拍摄时的经纬度
java读取照片信息 获取照片拍摄时的经纬度
项目结构
源码:ImageInfo.zip
第一步:添加需要的架包metadate-extractor.jar
架包下载地址:https://code.google.com/p/metadata-extractor/downloads/list
或者去Maven仓库下载 http://search.maven.org/#search%7Cga%7C1%7Cmetadata-extractor
第二步:编写解析代码
1 package com.drew.metadata; 2 import java.io.File; 3 4 import com.drew.imaging.ImageMetadataReader; 5 import com.drew.imaging.ImageProcessingException; 6 /** 7 * java读取照片信息 8 */ 9 public class SampleUsage{10 public static void main(String[] args) throws Exception, Exception{ 11 File file = new File("E:\\带有地理位置的图片.jpg"); 12 printImageTags(file);13 } 14 /** 15 * 读取照片里面的信息 16 */ 17 private static void printImageTags(File file) throws ImageProcessingException, Exception{ 18 Metadata metadata =http://www.mamicode.com/ ImageMetadataReader.readMetadata(file); 19 for (Directory directory : metadata.getDirectories()) { 20 for (Tag tag : directory.getTags()) { 21 String tagName = tag.getTagName(); //标签名22 String desc = tag.getDescription(); //标签信息23 if (tagName.equals("Image Height")) { 24 System.out.println("图片高度: "+desc);25 } else if (tagName.equals("Image Width")) { 26 System.out.println("图片宽度: "+desc);27 } else if (tagName.equals("Date/Time Original")) { 28 System.out.println("拍摄时间: "+desc);29 }else if (tagName.equals("GPS Latitude")) { 30 System.err.println("纬度 : "+desc);31 // System.err.println("纬度(度分秒格式) : "+pointToLatlong(desc));32 } else if (tagName.equals("GPS Longitude")) { 33 System.err.println("经度: "+desc);34 // System.err.println("经度(度分秒格式): "+pointToLatlong(desc));35 }36 } 37 } 38 } 39 /** 40 * 经纬度格式 转换为 度分秒格式 ,如果需要的话可以调用该方法进行转换41 * @param point 坐标点 42 * @return 43 */ 44 public static String pointToLatlong (String point ) { 45 Double du = Double.parseDouble(point.substring(0, point.indexOf("°")).trim()); 46 Double fen = Double.parseDouble(point.substring(point.indexOf("°")+1, point.indexOf("‘")).trim()); 47 Double miao = Double.parseDouble(point.substring(point.indexOf("‘")+1, point.indexOf("\"")).trim()); 48 Double duStr = du + fen / 60 + miao / 60 / 60 ; 49 return duStr.toString(); 50 } 51 }52
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。