利用Python实现获取照片位置信息

作者:不许代码码上红 时间:2022-12-07 06:58:16 

引言

通过一张照片居然发现女友在宿舍里没去上课!强大的照片位置信息获取,快来一起学习吧!

一、exifread函数库

要怎样获得拍摄图片的GPS呢?这里我们需要exifread 库,这个就是用来提取 GPS 信息的。直接 pip install exifread 来安装就好了。

安装exrfread库(PyCharm)

打开settings如下图

利用Python实现获取照片位置信息

选择+号搜索exifread

利用Python实现获取照片位置信息

安装即可

什么是exifread函数库

原理

先把图片以二进制的格式读取出来,然后通过 exifread 库把里面的 GPS 信息提取出来,再以特定的格式打印出来,最后直接复制里面的经纬度信息,在支持通过经纬度来查位置的地图里一查就能定位到了。

二、获取女朋友发来的照片(单身勿扰)

利用Python实现获取照片位置信息

女朋友居然告诉我这只狗好可爱?

哪里可爱了!!?

利用Python实现获取照片位置信息

将图片放在代码所在的目录下

三、具体代码实现

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)

结果

利用Python实现获取照片位置信息

四、经纬度转换

百度搜索经纬度查询

利用Python实现获取照片位置信息

随便点进去一个能够转换的

利用Python实现获取照片位置信息

输入得到的经纬度即可

可恶,居然在宿舍拍狗狗不去上课!!!

好了今天的分享就到这里,希望大家一起进步!

来源:https://blog.csdn.net/qq_45801904/article/details/126443194

标签:Python,照片,位置,信息
0
投稿

猜你喜欢

  • 安装docker-compose的两种最简方法

    2022-10-03 21:39:44
  • 浅谈JavaScript 中的延迟加载属性模式

    2024-04-17 10:29:56
  • Python写安全小工具之TCP全连接端口扫描器

    2023-12-30 13:34:52
  • python函数map()和partial()的知识点总结

    2023-10-04 14:58:11
  • Puppeteer环境搭建的详细步骤

    2024-05-13 09:58:56
  • django queryset相加和筛选教程

    2022-09-10 11:04:43
  • 最小asp后门程序

    2011-04-03 10:35:00
  • 解读HTML:大厦的基石

    2008-12-01 12:57:00
  • Matlab中关于argmax、argmin函数的使用解读

    2023-06-27 20:36:53
  • asp内置对象Application详解

    2007-09-19 12:08:00
  • SQL重复记录处理(查找,过滤,删除)

    2008-11-17 20:47:00
  • 在Django中管理Users和Permissions以及Groups的方法

    2023-11-03 03:10:21
  • MySQL中使用表别名与字段别名的基本教程

    2024-01-12 19:39:15
  • Python设计模式编程中Adapter适配器模式的使用实例

    2023-11-16 10:02:15
  • jQuery结合CSS制作漂亮的select下拉菜单

    2024-04-19 09:58:32
  • pytorch中的squeeze函数、cat函数使用

    2022-03-27 14:32:24
  • python Requsets下载开源网站的代码(带索引 数据)

    2023-01-03 13:19:11
  • Python中Flask-RESTful编写API接口(小白入门)

    2023-02-07 10:47:46
  • python中if的基础用法(if else和if not)

    2021-02-01 01:56:18
  • 详解 Go 语言中 Map 类型和 Slice 类型的传递

    2024-05-29 22:07:11
  • asp之家 网络编程 m.aspxhome.com