java读取照片信息 获取照片拍摄时的经纬度
项目结构

第一步:添加需要的架包metadate-extractor.jar
架包下载地址:https://code.google.com/p/metadata-extractor/downloads/list
或者去Maven仓库下载 http://search.maven.org/#search%7Cga%7C1%7Cmetadata-extractor
第二步:编写解析代码
package com.drew.metadata;
import java.io.File; import com.drew.imaging.ImageMetadataReader;
import com.drew.imaging.ImageProcessingException;
/**
* java读取照片信息
*/
public class SampleUsage{
public static void main(String[] args) throws Exception, Exception{
File file = new File("E:\\带有地理位置的图片.jpg");
printImageTags(file);
}
/**
* 读取照片里面的信息
*/
private static void printImageTags(File file) throws ImageProcessingException, Exception{
Metadata metadata = ImageMetadataReader.readMetadata(file);
for (Directory directory : metadata.getDirectories()) {
for (Tag tag : directory.getTags()) {
String tagName = tag.getTagName(); //标签名
String desc = tag.getDescription(); //标签信息
if (tagName.equals("Image Height")) {
System.out.println("图片高度: "+desc);
} else if (tagName.equals("Image Width")) {
System.out.println("图片宽度: "+desc);
} else if (tagName.equals("Date/Time Original")) {
System.out.println("拍摄时间: "+desc);
}else if (tagName.equals("GPS Latitude")) {
System.err.println("纬度 : "+desc);
// System.err.println("纬度(度分秒格式) : "+pointToLatlong(desc));
} else if (tagName.equals("GPS Longitude")) {
System.err.println("经度: "+desc);
// System.err.println("经度(度分秒格式): "+pointToLatlong(desc));
}
}
}
}
/**
* 经纬度格式 转换为 度分秒格式 ,如果需要的话可以调用该方法进行转换
* @param point 坐标点
* @return
*/
public static String pointToLatlong (String point ) {
Double du = Double.parseDouble(point.substring(0, point.indexOf("°")).trim());
Double fen = Double.parseDouble(point.substring(point.indexOf("°")+1, point.indexOf("'")).trim());
Double miao = Double.parseDouble(point.substring(point.indexOf("'")+1, point.indexOf("\"")).trim());
Double duStr = du + fen / 60 + miao / 60 / 60 ;
return duStr.toString();
}
}
java读取照片信息 获取照片拍摄时的经纬度的更多相关文章
- Java 读取网络资源文件 获取文件大小 MD5校验值
Java 读取网络资源文件 获取文件大小 MD5校验值 封装一个文件操作工具类: package c; import java.io.*; import java.net.HttpURLConnect ...
- Python-根据照片信息获取用户详细信息(微信发原图或泄露位置信息)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 蒙娜丽胖 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...
- java读取配置文件信息
ResourceBundle resource = ResourceBundle.getBundle("shopxx");//不要加.properties后缀,我加了报错 reso ...
- JAVA读取HDFS信息
uri填路径 public static void main(String[] args) throws IOException { String uri = "/user/WeiboAD/ ...
- itext poi 学习之旅 (3)读取数据库信息并由excel展现出来
DBConnection.java 连接数据库操作 package com.zkbj.poi; import java.sql.Connection; import java.sql.DriverMa ...
- JAVA读取XML文件并解析获取元素、属性值、子元素信息
JAVA读取XML文件并解析获取元素.属性值.子元素信息 关键字 XML读取 InputStream DocumentBuilderFactory Element Node 前言 最 ...
- PHP获取照片exif信息
在这个没图说个屁的年代,照片还是很重要的.如果照片上传后会自动加上 照片相关信息,那用户体验的确会好很多,本着这个想法,今天尝试了下 PHP获取照片exif信息,重要的是 获取图片的GPS信息,如果再 ...
- 用python 获取照片的Exif 信息(获取拍摄设备,时间,地点等信息)
第一步:先安装 pip install exifread 第二部:上代码 import exifread import requests class PhotoExifInfo(): def __in ...
- 移动端Vue图片获取,压缩,预览组件-upload-img(H5+获取照片,压缩,预览)
组件示例图 组件代码 upload_img.vue <div id="uploadImg"> <div class="upload_image_box& ...
随机推荐
- js异步加载 defer和async 比较
网上说法很多,很少一句话能总结清楚的,终于找到两句一针见血的描述,很到位: 相同点:都不阻塞DOM解析 defer :顺序:保证先后顺序.解析:HTML 解析器遇到它们时,不阻塞(脚本将被异步下载) ...
- javascript数学计算
◎Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数:◎Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数:◎Math.round()执行标准舍入,即它总 ...
- ajax post 跨域
H5页面永远无法避开跨域问题-- php中, header('Access-Control-Allow-Origin:*'); 搞定. 兼容性先不管了. 来自为知笔记(Wiz)
- ASP .NET 如何在 SQL 查询层面实现分页
[编者按]本文作者为来自巴基斯坦的软件开发工程师 Aqeeel,主要介绍了在 SQL 查询层面实现 ASP.NET 应用的分页方法. 本文系 OneAPM 工程师编译呈现,以下为正文. GridVie ...
- c#操作剪切板
C#定义了一个类System.Windows.Forms.Clipboard来简化剪切板操作,这个类有一个静态方法,主要有: Clear 清除剪切板中的所有数据: ContainsData,Conta ...
- hdu 3441 Rotation
总的来说,这题要2次用到polya定理. 由题目条件A*A=B*B+1,变形为(A-1)*(A+1)=K*B*B; 分别分解A-1和A+1的质因数,在合并在一起. 第一步:搜索B,对B*B的正方形涂色 ...
- lintcode : 二叉树的序列化和反序列化
题目 二叉树的序列化和反序列化 设计一个算法,并编写代码来序列化和反序列化二叉树.将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”. 如何反序列化或序列化二叉树是没有限制 ...
- 546C. Soldier and Cards
题目链接 题意 两个人玩扑克,共n张牌,第一个人k1张,第二个人k2张 给定输入的牌的顺序就是出牌的顺序 每次分别比较两个人牌的第一张,牌上面数字大的赢,把这两张牌给赢的人,并且大的牌放在这个人的牌最 ...
- 安装eclipse for JavaEE 后的一些设置
以下的设置是相对于一个workspace而设置的,如果更换了workspace则要重新设置. 1. 设置Text Editors: 2. 设置Content Assist 的快捷键(比较方便) 3. ...
- jQuery编程基础精华01(jQuery简介,顶级对象$,jQuery对象、Dom对象,链式编程,选择器)
jQuery简介 什么是jQuery? jQuery就是一个JavaScript函数库,没什么特别的.(开源)联想SQLHelper类 jQuery能做什么?jQuery是做什么的? jQuery本身 ...