【导语】:用 python 怎样得到图片的GPS信息?今天推荐一下 exifread 这个神奇的库,不单单是 GPS 信息,几乎能能得到图片的全部信息,快进来看看!!python
要怎样得到拍摄图片的GPS呢?这里咱们须要exifread 库,这个就是用来提取 GPS 信息的。直接 pip install exifread 来安装就行了。git
其实不只能得到GPS信息,图片的几乎全部信息都能得到。exifread的做用实际上是代替了查看图片属性!以下图:spa
这里用在三亚拍的骆驼照片来作个演示,看看能不能定位到三亚。3d
注:若是图片被压缩了的话会破坏里面的二进制信息,确定就不能提取了哦!code
原理是: 先把图片以二进制的格式读取出来,而后经过 exifread 库把里面的 GPS 信息提取出来,再以特定的格式打印出来,最后直接复制里面的经纬度信息,在支持经过经纬度来查位置的地图里一查就能定位到了。blog
exifread库读取图片的二进制示例:接口
具体代码以下图片
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)
如图所示,读取后的纬经度信息直接就显示出来了ip
拓展1: 后期咱们能够经过百度提供的 API 接口直接把经纬度转换为具体的地点。你们能够本身来尝试一下!string
拓展2: 固然,你右键图片属性的详细信息里也有这些信息。
若是想保密的话,直接点击删除属性和我的信息就能能把信息删掉。