照片GPS信息"/>
用Python获取照片GPS信息
用Python获取照片GPS信息
注意事项:
1.调用了百度地图的接口。
2.能够获取信息的照片是本身就带有这些信息的,只不过我们把它查出来了而已。
3.如果是微信接收到的非原图的照片、拍摄时没开定位的照片是无法获取的。
4.精确到经纬度,城市街道门牌号,除此之外还有手机型号,拍摄时间等其他信息。
5.如果不能直接运行,需要自己重新调接口。
import exifread
import requestsdef process_list(lst):# 最后一个元素单独处理last = int(lst[-1]) / 3600new_x = lst[0].num + lst[1].num / 60 + last / 3600return '%.6f' % new_xdef gps_adress(lat, lng):if not lat or not lng:return "经纬度信息有误"# 建议自己申请一个key = "520703c096afcb9537ccb3d80e3e4178"url = f'=json&key={key}&location={lat},{lng}'response = requests.get(url)address = ''if response.status_code == 200:resp_json = response.json()print(resp_json)address = resp_json['regeocode']['formatted_address']return addressif __name__ == '__main__':f = open('rice.jpg', 'rb')tags = exifread.process_file(f)print(tags)if tags:# 拍摄时间i_time = tags.get('Image DateTime')if i_time:i_time = i_time.values# 北纬lat = tags.get('GPS GPSLatitude')if lat:lat = process_list(lat.values)# 东经lng = tags.get('GPS GPSLongitude')if lng:lng = process_list(lng.values)adress = gps_adress(lng, lat)print(f"图片拍摄时间 %s, 拍摄地点:%s" % (i_time, adress))else:print("此图像无任何信息")
更多推荐
用Python获取照片GPS信息
发布评论