Python 获取图片GPS等信息锁定图片拍摄地点、拍摄时间(实例代码)

 更新时间:2023年07月20日 09:57:03   作者:挣扎的蓝藻  
这篇文章主要介绍了Python 获取图片GPS等信息锁定图片拍摄地点、拍摄时间,先把图片以二进制的格式读取出来,然后通过 exifread 库把里面的 GPS 信息提取出来,再以特定的格式打印出来,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下

我们需要 exifread 库,这个就是用来提取 GPS 信息的。直接 pip install exifread 来安装就好了。

我用前段时间朋友在三亚拍的这个骆驼照片来做个演示,看看能不能定位到三亚。【用的是 iphone 手机拍摄的,其它的手机是否能提取出 GPS 信息需要大家来试试】

注:如果图片被压缩了的话会破坏里面的二进制信息,肯定就不能提取了哦!如果程序运行报 KeyError: '纬度' 错误,可能就是这个原因,可以参照文章结尾的属性查看方法来判断一下。

我们的原理就是: 先把图片以二进制的格式读取出来,然后通过 exifread 库把里面的 GPS 信息提取出来,再以特定的格式打印出来,最后直接复制里面的经纬度信息【地图查询需要把把纬度放前面,所有我就先把纬度打出来了】在支持通过经纬度来查位置的地图里一查就能定位到了。

具体代码如下:

import exifread
import re
# 读取图片为二进制格式
f = open("luotuo.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)

如图所示,读取后的纬经度信息直接就显示出来了。

在这里插入图片描述

然后在这个 GPSSPG 地图里搜出来就好了可以看到地图直接定位到了海南省三亚市。

在这里插入图片描述

拓展1: 后期我们可以通过百度提供的 API 接口直接把经纬度转换为具体的地点。大家可以自己来尝试一下,也可以等后期博主的更新哦!

拓展2: 当然,你右键图片属性的详细信息里也有这些信息。如果想保密的话,直接点击删除属性和个人信息就能能把信息删掉。

在这里插入图片描述

还有这些信息是可以进行编辑的,可以用来欺骗对手,嘿嘿,具体怎么玩你懂的!我就把我图片的 iphone11 改成 iphone12 了。

在这里插入图片描述

到此这篇关于Python 获取图片GPS等信息锁定图片拍摄地点、拍摄时间的文章就介绍到这了,更多相关Python 获取图片拍摄地点、拍摄时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python协程实践分享

    Python协程实践分享

    这篇文章主要分享的是Python协程实践,协程简单来说就是一个更加轻量级的线程,并且不由操作系统内核管理,完全由程序所控制,下文相关介绍需要的朋友可以参考一下
    2022-05-05
  • Python+Selenium实现无头浏览器网页截图

    Python+Selenium实现无头浏览器网页截图

    这篇文章主要为大家详细介绍了Python+Selenium实现无头浏览器网页截图的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-03-03
  • Python海龟绘图(Turtle)应用指南

    Python海龟绘图(Turtle)应用指南

    python2.6版本中后引入的一个简单的绘图工具,叫做海龟绘图(Turtle Graphics)。海龟绘图(turtle库)是python的内部模块,使用前导入即可。本文将展示三个通过海龟绘图实现的小程序,快来跟随小编一起学习吧
    2022-03-03
  • 想学python 这5本书籍你必看!

    想学python 这5本书籍你必看!

    想学python,这5本书籍你必看!本文为大家推荐了学习python的5本书籍,5本经典书籍,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • 解决pycharm运行程序出现卡住scanning files to index索引的问题

    解决pycharm运行程序出现卡住scanning files to index索引的问题

    今天小编就为大家分享一篇解决pycharm运行程序出现卡住scanning files to index索引的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 使用Python实现桥接模式的代码详解

    使用Python实现桥接模式的代码详解

    桥接模式是一种结构型设计模式,它将抽象部分与其实现部分分离,使它们都可以独立地变化,本文将给大家介绍如何使用Python实现桥接模式,需要的朋友可以参考下
    2024-02-02
  • Python2.7编程中SQLite3基本操作方法示例

    Python2.7编程中SQLite3基本操作方法示例

    这篇文章主要介绍了Python2.7编程中SQLite3基本操作方法,涉及Python2.7操作sqlite3数据库的增删改查及防注入等相关技巧,需要的朋友可以参考下
    2017-08-08
  • 30秒轻松实现TensorFlow物体检测

    30秒轻松实现TensorFlow物体检测

    这篇文章主要为大家详细介绍了30秒轻松实现TensorFlow物体检测,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • 用python爬取历史天气数据的方法示例

    用python爬取历史天气数据的方法示例

    这篇文章主要介绍了用python爬取历史天气数据的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Python学习之字符串格式化

    Python学习之字符串格式化

    这篇文章主要介绍了Python实现字符串格式化输出的方法,结合具体实例形式总结分析了Python字符串格式化输出的各种常用操作技巧,需要的朋友可以参考下
    2021-10-10

最新评论