使用Python读取照片的GPS信息

使用Python读取照片的GPS信息

大家好,又见面了,我是全栈君。

使用Python读取照片的GPS信息

来源:https://www.cnblogs.com/baby123/p/12213794.html

昨天听人说,用手机拍照会带着GPS信息,原来没注意过这个,因此查看下并使用代码获取照片里的GPS信息

使用Python读取照片的GPS信息

说明:

  一般手机拍照时默认会打开地理位置开关

  经过压缩后,通常会将GPS信息压缩掉

EXIF

  可交换图像文件常被简称为EXIF(Exchangeable image file format),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据

注:

  EXIF信息不支持png,webp等图片格式

python通过exifread模块获得图片exif信息 

ExifRead

Python library to extract EXIF data from tiff and jpeg files.

安装

pip install exifread

读取GPS

import exifread
import re


def  read():
    GPS = {}
    date = ''
    f = open("E:\\python\\IMG_20200119_145630.jpg",'rb')
    contents = exifread.process_file(f)
    for key in contents:
        if key == "GPS GPSLongitude":
            print("经度 =", contents[key],contents['GPS GPSLatitudeRef'])
        elif key =="GPS GPSLatitude":
            print("纬度 =",contents[key],contents['GPS GPSLongitudeRef'])
read()

运行

使用Python读取照片的GPS信息

读取更多信息

import exifread
import re


def  read():
    GPS = {}
    date = ''
    f = open("E:\\python\\IMG_20200119_145630.jpg",'rb')
    contents = exifread.process_file(f)
    for key in contents:
        if key == "GPS GPSLongitude":
            print("经度: ", contents[key],contents['GPS GPSLatitudeRef'])
            print("纬度: ",contents['GPS GPSLatitude'],contents['GPS GPSLongitudeRef'])
            print("高度基准: ",contents['GPS GPSAltitudeRef'])
            print("海拔高度: ",contents['GPS GPSAltitude'])
        if re.match('Image Make', key):
            print('品牌信息: ' , contents[key])
        if re.match('Image Model', key):
            print('具体型号: ' , contents[key])
        if re.match('Image DateTime', key):
            print('拍摄时间: ' , contents[key])
        if re.match('EXIF ExifImageWidth', key):
            print('照片尺寸: ' , contents[key],'*',contents['EXIF ExifImageLength'])
        if re.match('Image ImageDescription',key):
            print('图像描述: ' , contents[key])
read()

使用Python读取照片的GPS信息

如何防止信息被泄露

传图的时候不要用原图
在相机的设置里,将地理位置关掉
直接将GPS的权限关掉
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111914.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 无人驾驶汽车毫米波雷达_无人驾驶雷达

    无人驾驶汽车毫米波雷达_无人驾驶雷达在上一次分享中,我介绍了毫米波雷达的原理、数据特性及优缺点。毫米波雷达的低环境敏感和低成本的特性使得其在ADAS和自动驾驶领域得到了广泛的应用。今天要介绍的是一款极其常见的传感器——超声波雷达。如果你觉得超声波雷达有些陌生,那么它还有一个更通俗的名字——倒车雷达。在倒车入库,慢慢挪动车子的过程中,在驾驶室内能听到”滴滴滴“的声音,这些声音就是根据超声波雷达的检测距离给司机…

    2022年9月11日
    0
  • golang 激活码2021-激活码分享「建议收藏」

    (golang 激活码2021)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~4D…

    2022年3月30日
    1.7K
  • linkhashmap和hashmap的区别_java优先队列默认是大顶堆吗

    linkhashmap和hashmap的区别_java优先队列默认是大顶堆吗我们先看下HashMap和LinkedHashMap的继承关系。这两个类都实现了Map接口,同时LinkedHashMap继承于HashMap。具体如下图所示。Map的设计思想就是以空间来换时间,主要用来存储键值对。键不可以重复,值可以重复。HashMap这里简要说一下HashMap的性质,具体的源码分析可以参见前面的博客https://blog.csdn.net/SMonkeyKing/…

    2025年7月21日
    0
  • Domino8.5.1策略设定

    Domino8.5.1策略设定

    2022年3月12日
    49
  • 易语言解析html实例,易语言解析JSON教程

    易语言解析JSON教程本文由applek于2015-7-717:25发布在易语言教程现在很多数据都是为json返回,如果用正则的话显得太麻烦,下面果核源码网就带来json解析教程首先需要用到工具:精易模块3.6以上版本:json解析工具:首先我们要有一段json,这儿拿QQ留言json测试。下载地址:下面将代码复制到工具,如图所示然而右边并没有解析出来原因是这个不是标准的json,标…

    2022年4月9日
    531
  • 重磅!2021年国内Java培训机构排名十强出炉啦!

    重磅!2021年国内Java培训机构排名十强出炉啦!在IT行业当中,Java是最受欢迎的编程语言之一,作为最早出现的编程语言至今都没有倒下,可以说是YYDS!近年来学习Java的小伙伴也是越来越多,通过参加培训的方式来学习Java技术是最快最有效的方法。如今Java培训机构多如牛毛,到底该怎么选呢?下面小编就给大家发布2021年Java培训机构排名十强的名单来供大家参考:1、动力节点(http://www.bjpowernode.com/)动力节点是Java培训界“口口相传的Java黄埔军校”,成立至今12年,专注Java培训事业,为学员提供更.

    2022年7月7日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号