python解析图片的GPS信息

160 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第28天,点击查看活动详情

一个神奇的库

python中的第三方库exifread是一个神奇的库,几乎可以获取照片中的所有相关信息;

在这里插入图片描述

作为一个第三方库,使用前需要先安装以下;

安装exifread

安装方式推荐有很多种,推荐使用pip;

pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。

安装pip:

  • 安装python; 这个是必须安装的;

  • 下载pip:

    官网地址:pypi.org/project/pip…; 下载完毕后,解压

  • 打开命令行窗口,进入到pip解压后的目录;执行以下代码进行安装,

    python3 setup.py install

    安装完成后,将pip加入到系统环境变量中

  • 验证 打开命令行窗口,输入pip list 或者pip3 list 在这里插入图片描述 以上只针对于windows系统,其他系统也可以参考

  • 开始安装exifread: 打开命令行窗口,输入执行以下代码,并回车

    pip install exifread

等待提示第三库安装成功既可;

安装的大小只有40k,最新版本是3.0

实现解析图片的GPS信息

需要有一个未被压缩的图片,压缩的图片会破坏二进制信息导致无法提取成功 因为exifread获取图片GPS信息的原理是:

以二进制的格式读取图片, 使用exifread库提取图片GPS信息, 然后在打印出特定格式的经纬度信息;

获取文件信息:

import exifread
f = open(r"C:\Users\Administrator\Desktop\1.jpg","rb")
info = exifread.process_file(f)
print(info)

在这里插入图片描述 提取信息:

for k,v in info.items():
    print(k)
    if 'GPS' in k:
        print(v)

可以打印出所有的key值,过滤出GPS相关信息即可;

所有的key如下:

Image YResolution
Image XResolution
Image ImageWidth
Image ImageLength
Image Software
Image ImageDescription
Image YCbCrPositioning
Image ExifOffset
Image ResolutionUnit
Image Orientation
GPS GPSAltitude
GPS GPSAltitudeRef
GPS GPSProcessingMethod
GPS GPSVersionID
GPS GPSTimeStamp
GPS GPSDate
Image GPSInfo
Thumbnail YResolution
Thumbnail Orientation
Thumbnail Compression
Thumbnail JPEGInterchangeFormat
Thumbnail JPEGInterchangeFormatLength
Thumbnail XResolution
Thumbnail YCbCrPositioning
Thumbnail ResolutionUnit
EXIF ExifVersion
EXIF ExposureBiasValue
EXIF ExposureProgram
EXIF ColorSpace
EXIF MaxApertureValue
EXIF ExifImageLength
EXIF BrightnessValue
EXIF DateTimeOriginal
EXIF FlashPixVersion
EXIF SubSecTimeOriginal
EXIF WhiteBalance
Interoperability InteroperabilityIndex
EXIF InteroperabilityOffset
EXIF RecommendedExposureIndex
EXIF ExposureMode
EXIF ExposureTime
EXIF Flash
EXIF SubSecTime
EXIF FNumber
EXIF ExifImageWidth
EXIF ISOSpeedRatings
EXIF ComponentsConfiguration
EXIF FocalLengthIn35mmFilm
EXIF SubSecTimeDigitized
EXIF DigitalZoomRatio
EXIF DateTimeDigitized
EXIF ShutterSpeedValue
EXIF FocalLength
EXIF MeteringMode
EXIF SensitivityType
EXIF SceneCaptureType
EXIF LightSource
JPEGThumbnail