当前位置 : 主页 > 编程语言 > python >

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

来源:互联网 收集:自由互联 发布时间:2023-01-30
目录 引言 一、exifread函数库 安装exrfread库(PyCharm) 什么是exifread函数库 二、获取女朋友发来的照片(单身勿扰) 三、具体代码实现 四、经纬度转换 引言 通过一张照片居然发现女友在
目录
  • 引言
  • 一、exifread函数库
    • 安装exrfread库(PyCharm)
    • 什么是exifread函数库
  • 二、获取女朋友发来的照片(单身勿扰)
    • 三、具体代码实现
      • 四、经纬度转换

        引言

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

        一、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)
        

        结果

        四、经纬度转换

        百度搜索经纬度查询

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

        输入得到的经纬度即可

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

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

        到此这篇关于利用Python实现获取照片位置信息的文章就介绍到这了,更多相关Python照片位置信息内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

        上一篇:python包合集shutil示例代码详解
        下一篇:没有了
        网友评论