利用Python实现获取照片位置信息
作者:不许代码码上红 发布时间:2022-12-07 06:58:16
标签:Python,照片,位置,信息
引言
通过一张照片居然发现女友在宿舍里没去上课!强大的照片位置信息获取,快来一起学习吧!
一、exifread函数库
要怎样获得拍摄图片的GPS呢?这里我们需要exifread 库,这个就是用来提取 GPS 信息的。直接 pip install exifread 来安装就好了。
安装exrfread库(PyCharm)
打开settings如下图
选择+号搜索exifread
安装即可
什么是exifread函数库
原理:
先把图片以二进制的格式读取出来,然后通过 exifread 库把里面的 GPS 信息提取出来,再以特定的格式打印出来,最后直接复制里面的经纬度信息,在支持通过经纬度来查位置的地图里一查就能定位到了。
二、获取女朋友发来的照片(单身勿扰)
女朋友居然告诉我这只狗好可爱?
哪里可爱了!!?
将图片放在代码所在的目录下
三、具体代码实现
import exifread
import re
# 读取图片为二进制格式
f = open("example2.jpg","rb")
tags = exifread.process_file(f)
# GPS信息
GPS = {}
# 拍摄时间
Data = ""
for tag,value in tags.items():
# 获取纬度信息
if re.match('GPS GPSLatitude', tag):
try:
match_result=re.match('\[(\w*), (\w*), (\w.*)/(\w.*)\]', str(value)).groups()
GPS['纬度'] = str(int(match_result[0])) + " " + str(int(match_result[1])) + " " + str(int(match_result[2])/int(match_result[3]))
except:
GPS['纬度'] = str(value)
# 获取纬度信息
elif re.match('GPS GPSLongitude', tag):
try:
match_result=re.match('\[(\w*), (\w*), (\w.*)/(\w.*)\]',str(value)).groups()
GPS['经度'] = str(int(match_result[0])) + " " + str(int(match_result[1])) + " " + str(int(match_result[2])/int(match_result[3]))
except:
GPS['经度'] = str(value)
# 获取高度
elif re.match('GPS GPSAltitude', tag):
GPS['高度'] = str(value)
# 获取拍摄时间
elif re.match('Image DateTime', tag):
Data = str(value)
# 打印信息
print("纬 经 度:" + GPS['纬度'] + "," + GPS['经度'])
print("拍摄时间:" + Data)
结果
四、经纬度转换
百度搜索经纬度查询
随便点进去一个能够转换的
输入得到的经纬度即可
可恶,居然在宿舍拍狗狗不去上课!!!
好了今天的分享就到这里,希望大家一起进步!
来源:https://blog.csdn.net/qq_45801904/article/details/126443194


猜你喜欢
- 背景:目前keras框架使用简单,很容易上手,深得广大算法工程师的喜爱,但是当部署到客户端时,可能会出现各种各样的bug,甚至不支持使用ke
- scrapy框架只能爬取静态网站。如需爬取 * 站,需要结合着selenium进行js的渲染,才能获取到动态加载的数据。如何通过seleni
- PyTorch最近几年可谓大火。相比于TensorFlow,PyTorch对于Python初学者更为友好,更易上手。
- 1.创建tfrecordtfrecord支持写入三种格式的数据:string,int64,float32,以列表的形式分别通过tf.trai
- 在本文中,我将说明如何用SQL Server的工具来优化数据库索引的使用,本文还涉及到有关索引的一般性知识。 关于索引的常识 影响到数据
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&
- python去重及数据合并drop_dupicates参数含义:subset:即表示要去重指定参考的列keep : {‘
- 检查图片是否损坏日常工作中,时常会需要用到图片,有时候图片在下载、解压过程中会损坏,而如果一张一张点击来检查就太不Cool了,因此我想大家都
- 自动化测试执行的用例有很多,python额测试用例文件,都是以“test”开头的。TestLoader(defaultTestLoader)
- 看到了很多关于如何读出图片的长度的高度的方法,其实都不实用,大多都是通过图片的大小来判断的,图片的种类众多,通过大小来判断难免要制造很多的代
- if"""条件语句:ifif...elseif...elif...elseif 语句的格式:if 条件: &n
- 比如有两个模块,一个aa.py,一个bb.py 代码如下:aa.py:#encoding:utf-8import bba=1bb.py:#e
- 有一个需求, 需要从数据库中导出两张表的数据到同一个excel中鉴于是临时的业务需求, 直接使用Navicat 进行查询并导出数据.数据涉及
- 本文实例讲述了Python2与Python3的区别。分享给大家供大家参考,具体如下:python2与python3的区别1、性能2、编码格式
- 功能是:以一个关键字为索引,搜索整个数据库,然后返回那个关键字所在的表名和列名。(很赞...特别是入侵的时候找不到用户名与密码所在的表的时候
- 本文实例讲解了PHP图片上传并压缩的实现方法,分享给大家供大家参考,具体内容如下使用到三个文件connect.php:连接数据库test_u
- 上周想要取得iframe中的元素和js变量值,一直没取得,查资料得知:不能用$(document).ready()方法,而是要用$(&quo
- 1.打开PyCharm,选择File--Settings2.依次选择Editor---Code Style-- File and Code
- 1.问:在DW中如何设置页面边距为0?答:在DW中似乎没有直接设置的方法,你只有在Html文档中插入以
- 什么是设计模式设计模式是针对软件开发中出现的常见问题的可重用解决方案。它们并不特定于任何编程语言或框架,而是描述了可应用于各种情况的一般原则