如何读取照片的GPS信息?—最好的语言Java实现起来就这么简单【手把手教程+完整代码】
大家好,我是Lex 喜欢欺负超人那个Lex
上次,我们用Python读取照片的GPS信息,可以获取拍摄时间、手机型号等信息,还可以对
拍摄地点进行精确定位。Java表示不服~~~
今日重点:用Java读取照片的拍摄时间、GPS 以及手机型号等等信息
带你一步步实现功能,文末有完整源码哦【建议收藏】
事情是这样的
上次用python对照片进行GPS读取,如下 ↓ ↓ ↓
女友半夜加班发自拍 python男友用30行代码发现惊天秘密
【当然是选择原谅她啊】Python破解"通宵加班"女友的秘密
今天决定,露出我的真面目
用世界上最好的语言—Java(可能会挨喷)
来实现一遍这个功能
功能大体介绍一下就是:
通过脚本分析照片,对照片的拍摄地点进行GPS读取
另外,还可以拿到拍摄时间、手机型号等等信息。
先上效果
从微信某个群里随便找了一位美女发的照片
Java对照片进行分析,效果如下
获得结果如下:
{海拔=0 metres, 手机=Xiaomi, 纬度=24.41046111111111, 型号=MI MAX, 经度=103.41424722222223, 拍摄时间=2018:12:01 16:37:32,
拍摄地点=中国 云南省 红河哈尼族彝族自治州 xx市 XXX路 XXX号 温泉XXXX}
经纬度:24.41046111111111,103.41424722222223
拍摄时间:2018:12:01 16:37:32
手机型号:Xiaomi MI MAX
拍摄地点:中国 云南省 红河哈尼族彝族自治州 弥勒市 XXX路 XXX号 温泉XXX酒店
{"status":0,"result":{"location":{"lng":103.42283328917563,"lat":24.413805252378915},
"formatted_address":"云南省红河哈尼族彝族自治州弥勒市XXX路","business":"","addressComponent":
{"country":"中国","country_code":0,"country_code_iso":"CHN","country_code_iso2":"CN",
"province":"云南省","city":"红河哈尼族彝族自治州","city_level":2,"district":"弥勒市","town":"","town_code":"","adcode":"532504","street":"温泉路","street_number":"","direction":"","distance":""},"cityCode":107}}
emmm,不好过多描述
Java实现方法
1、引入相关jar包
这里需要引入两个jar包,用于读取照片的exif信息,里面包含照片的完整信息。
资源下载,放在最后啦。
2、读取Exif原始信息
首先利用jar包工具,
将照片里的Exif原始信息读取出来。
完整代码如下:
public static HashMap<String, Object> readPicInfo(String file_path) {HashMap<String, Object> map = new HashMap<String,Object>();Tag tag = null;File jpegFile = new File(file_path);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) tags.next();System.out.println(tag.getTagName()+"--"+tag.getDescription());}}} catch (JpegProcessingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return map;
}
public static void main(String[] args) {//传入照片的绝对路径readPicInfo("C:\\Users\\pacer\\Desktop\\img\\others\\10.jpg");
}
我们来看一下,能获得那些信息:
拍摄的手机型号、GPS精确位置、拍摄时间、像素、修改日期
甚至包括,拍摄地点的海拔信息都是有的。
3、GPS格式转换
我们通过exif读取的GPS信息,是类似于度、分、秒这种格式的。
我们需要将GPS信息通过计算转换成十进制的数字位数,
这样才可以调用百度地图API或者其他的地图API来将GPS信息转换为地理位置信息。
/**** 经纬度坐标格式转换* @param Gps*/
public double latitude_and_longitude_convert_to_decimal_system(String Gps) {String a = Gps.split("°")[0].replace(" ", "");String b = Gps.split("°")[1].split("'")[0].replace(" ", "");String c = Gps.split("°")[1].split("'")[1].replace(" ", "").replace("\"", "");double gps_dou = Double.parseDouble(a)+Double.parseDouble(b)/60 + Double.parseDouble(c)/60/60;return gps_dou;
}
通过这个函数,我们将经纬度信息转换为10进制数字信息。
4、调用地图API将GPS坐标转换为地理位置
我们通过exif原始信息,拿到的是一串地理坐标数字。
如果想要转换为具体的地址信息,那么就需要通过各大地图API来进行转换,
小伙伴们可以自己去免费注册一个百度地图API,然后通过调用它提供的接口,
就可以将传入的GPS坐标值,转换为地址信息。当然,这里也可以用我的。
调用接口方法如下:
//接口调用方法如下:
//api_key:是你注册的key值
//coords:是你的经纬度坐标http://api.map.baidu.com/reverse_geocoding/v3/?ak="+api_key+"&output=json&coordtype=wgs84ll&location="+coords
5、完整代码
最后,将代码整理汇总一下。
做成了一个简单的java小项目
有java环境,即可运行~~
【项目完整代码+完整jar包】
下载地址:
完整项目下载地址【附带测试照片】
原下载地址
深藏功与名~~
推荐阅读
【Java资源下载】
- 【JDK5】jdk1.5x64位 windows版.zip
- jdk1.5x64位windows版.zip_-Web服务器文档类资源-CSDN下载
- 【JDK6】jdk-6u45-windows-x64 jdk1.6 64位 Windows版
- jdk-6u45-windows-x64jdk1.664位Windows版-其它文档类资源-CSDN下载
- 【JDK7】jdk-7u72-windows-i586-32位
- jdk-7u72-windows-i586-32位_jdk-7u17-windows-x32-Web服务器文档类资源-CSDN下载
- 【JDK8】jdk-8u131-linux-x64.tar.gz
- jdk-8u131-linux-x64.tar.gz-其它文档类资源-CSDN下载
- 【JDK8】jdk-8u131-linux-x64.tar.gz
- https://download.csdn.net/download/weixin_42350212/15809524
【python实战】
- 【python实战】前女友婚礼,python破解婚礼现场的WIFI,把名称改成了
- 【python实战】前女友发来加密的 “520快乐.pdf“,我用python破解开之后,却发现
- 【python实战】昨晚,我用python帮隔壁小姐姐P证件照 自拍,然后发现...
- 【python实战】女友半夜加班发自拍 python男友用30行代码发现惊天秘密
- 【python实战】python你TM太皮了——区区30行代码就能记录键盘的一举一动
- 【python实战】女神相册密码忘记了,我只用Python写了20行代码~~~
【pygame开发实战开发30例 完整源码】
- https://download.csdn.net/download/weixin_42350212/15836285
【pygame游戏开发专栏,获取完整源码+教程】
- 一起来学pygame吧 游戏开发30例(二)——塔防游戏
- 一起来学pygame吧 游戏开发30例(四)——俄罗斯方块小游戏
- 渗透测试实战专栏
- Windows AD/Exchange管理专栏
- Linux高性能服务器搭建
- PowerShell自动化专栏
CSDN官方学习推荐 ↓ ↓ ↓
为了帮助更多小白从零进阶 Java 工程师,从CSDN官方那边搞来了一套 《Java 工程师学习成长知识图谱》
尺寸 870mm x 560mm
,知识汇总非常齐全,还可以折叠成一本书大小。
如何读取照片的GPS信息?—最好的语言Java实现起来就这么简单【手把手教程+完整代码】相关推荐
- python提取图片gps坐标,使用Python读取照片的GPS信息
来源:https://www.cnblogs.com/baby123/p/12213794.html 昨天听人说,用手机拍照会带着GPS信息,原来没注意过这个,因此查看下并使用代码获取照片里的GPS信 ...
- Python读取安卓手机GPS信息
问题描述:使用Python读取安卓手机GPS信息,要求手机已经打开GPS. 思考一下: 1)如何在安卓手机上编写Python程序: 2)如何调用安卓系统提供的功能: 3)如何读取GPS数据. 思考上面 ...
- 通过Exiv2读取照片的Exif信息获取GPS,焦距等信息
这里简单介绍一下如何通过开源C++工具包Exiv2读取图片中的属性信息 其实做这项工作之前也想偷懒百度一下的,大都是Java写的安卓的 ExifInterface 类,这和我的工作扯不上一点关系啊,最 ...
- PHP如何读取照片的exif信息
什么是Exif? Exif是一种图象文件格式,它的数据存储与JPEG格式是完全相同的.实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍摄时的光圈.快门.白平衡.ISO.焦距.日期时 ...
- C# 读取照片的EXIF信息
一.使用 MetadataExtractor 读取 EXIF 信息 1.NuGet 中安装 在 NuGet 中搜索并安装 MetadataExtractor: 2.包信息 我安装后会有两个包:Meta ...
- 照片的GPS位置信息读取
一.照片的 EXIF信息 手机.相机拍摄的照片会自带一些诸如拍摄时间.地点.镜头型号.曝光度.图像尺寸等附加信息,在Windows上可以通过右键文件属性查看和修改相关参数. EXIF (exchang ...
- qpython获取手机gps_基于Python获取照片的GPS位置信息
这篇文章主要介绍了基于Python获取照片的GPS位置信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 昨天听人说,用手机拍照会带着GPS信息,原 ...
- 用Python读取照片拍摄的详细信息(拍摄时间、地址等)
前言 其实咱们平时拍摄的照片里隐藏了大量的私密信息,例如:拍摄时间.极其精确的GPS信息等.接下来尝试用python脚本分析照片,获取照片原图的拍摄信息. 1.准备条件 pip install ...
- 纯 python 开发批量读取照片 Exif 信息的小程序
自己动手写一些小程序解决工作中的问题,是学习 python 的高效途径.这中间会遇到一些不动手想不到的问题,一个一个地解决它们,你 python 开发水平就会突飞猛进! 本文总结一下实战 python ...
最新文章
- 使用VC实现一个“智能”自增减线程池
- 华为选拔人才的五个素质
- 分割2021算法合集
- python项目-马哥教育官网-专业Linux培训班,Python培训机构
- Centos7 网络配置
- 【Linux系统编程】Linux线程浅析
- CSS(五):背景、列表、超链接伪类、鼠标形状控制属性
- 用计算机怎么打出狂浪字谱,狂浪歌曲简谱
- 四、PHP框架Laravel学习笔记——路由命名和分组
- mysql锁总结知乎_MySQL锁总结
- 安徽初二计算机考试试题,安徽省八年级信息技术会考题库
- Laravel重写或者覆盖vender下面的方法
- 计算机开机总要按f1键,为什么开机要按f1键?win7每次开机按f1才能进入系统怎么办...
- 领带打法最新10种(图解)
- Android 获取 OAID ,替换 IMEI (兼容 Android 10获取IMEI问题)
- 石油化工企业防雷工程和防雷接地应用方案
- 速写在网站建设中的重要地位
- Code for VeLO 1: Training Versatile Learned Optimizers by Scaling Up
- KL,JS,Wasserstein距离
- yolov4评估自己的模型