使用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的权限关掉
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Pycharm中安装Pygame方法「建议收藏」

    Pycharm中安装Pygame方法「建议收藏」本文转自:https://blog.csdn.net/zhangffyy/article/details/78524592第一步:打开Pycharm第二步:点File->DefaultSettings->ProjectInterpreter->点加号第三步:搜索Pygame->InstallPackage然后就安装好了,新建一个p

  • mysql1396错误_MySQL 1045

    mysql1396错误_MySQL 1045提示错误:ERROR1396(HY000):OperationRENAMEUSERfailedfor’root’@’%’为了避免mysql中的安全隐患,将默认的root用户重命名。使用 renameuser 命令修改root用户名失败,改用updatemysql用户下的user表后修改成功。   …

  • jquery的validationEngine表单验证

    jquery的validationEngine表单验证本文主要引用https://www.cnblogs.com/aliger/p/3898216.html基于jquery的validationEngine表单验证插件,根据官网提示,该插件支持IE6-

  • Pandas 创建DataFrame提示:type object ‘object‘ has no attribute ‘dtype‘

    Pandas 创建DataFrame提示:type object ‘object‘ has no attribute ‘dtype‘pandas版本0.25.3importpandasaspdsymbol_info_columns=[‘1′,’持仓方向’,’持仓量’,’持仓收益率’,’持仓收益’,’持仓均价’,’当前价格’,’最大杠杆’]#v3symbol_config={‘BTC’:’BTC-USDT-210924′,’LTC’:’LTC-USDT-210924′,’EOS’:’EOS-USDT-210924′,’ETH’:’ETH-USDT-210924′,’XRP’:’

  • Laravel 中 validation 验证 返回中文提示 全局设置

    Laravel 中 validation 验证 返回中文提示 全局设置

    2021年10月23日
  • Vue上传图片_实现线程的四种方式

    Vue上传图片_实现线程的四种方式项目中需要上传图片可谓是经常遇到的需求,本文将介绍3种不同的图片上传方式,在这总结分享一下,有什么建议或者意见,请大家踊跃提出来。没有业务场景的功能都是耍流氓,那么我们先来模拟一个需要实现的业务场景。假设我们要做一个后台系统添加商品的页面,有一些商品名称、信息等字段,还有需要上传商品轮播图的需求。我们就以Vue、Element-ui,封装组件为例子聊聊如何实现这个功能。其他框架或者不用框架…

发表回复

您的电子邮箱地址不会被公开。

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