python 通过exifread读取照片信息
作者:gdjlc 时间:2022-12-09 13:44:53
通过第三方库exifread读取照片信息。
exifread官网:https://pypi.org/project/ExifRead/
一、安装exifread
pip install exifread
二、读取照片信息,以及根据经纬度通过百度地图API获取位置
import exifread
import json
import urllib.request
# Open image file for reading (binary mode)
f = open('001.jpg', 'rb')
# Return Exif tags
tags = exifread.process_file(f)
'''
#打印所有照片信息
for tag in tags.keys():
print("Key: {}, value {}".format(tag, tags[tag]))
'''
#打印照片其中一些信息
print('拍摄时间:', tags['EXIF DateTimeOriginal'])
print('照相机制造商:', tags['Image Make'])
print('照相机型号:', tags['Image Model'])
print('照片尺寸:', tags['EXIF ExifImageWidth'], tags['EXIF ExifImageLength'])
#获取经度或纬度
def getLatOrLng(refKey, tudeKey):
if refKey not in tags:
return None
ref=tags[refKey].printable
LatOrLng=tags[tudeKey].printable[1:-1].replace(" ","").replace("/",",").split(",")
LatOrLng=float(LatOrLng[0])+float(LatOrLng[1])/60+float(LatOrLng[2])/float(LatOrLng[3])/3600
if refKey == 'GPS GPSLatitudeRef' and tags[refKey].printable != "N":
LatOrLng=LatOrLng*(-1)
if refKey == 'GPS GPSLongitudeRef' and tags[refKey].printable != "E":
LatOrLng=LatOrLng*(-1)
return LatOrLng
#调用百度地图API通过经纬度获取位置
def getlocation(lat,lng):
url = 'http://api.map.baidu.com/geocoder/v2/?location=' + lat + ',' + lng + '&output=json&pois=1&ak=申请的百度地图KEY'
req = urllib.request.urlopen(url)
res = req.read().decode("utf-8")
str = json.loads(res)
#print(str)
jsonResult = str.get('result')
formatted_address = jsonResult.get('formatted_address')
return formatted_address
lat = getLatOrLng('GPS GPSLatitudeRef','GPS GPSLatitude') #纬度
lng = getLatOrLng('GPS GPSLongitudeRef','GPS GPSLongitude') #经度
print('纬度:{} 经度:{}'.format(lat, lng))
location = getlocation(str(lat), str(lng))
print('位置:{}'.format(location))
来源:https://www.cnblogs.com/gdjlc/p/11537776.html
标签:python,读取,照片信息,exifread
0
投稿
猜你喜欢
CSS背景 background 图像属性解读
2008-08-01 18:19:00
python绘制多个曲线的折线图
2021-08-01 13:58:52
利用Python读取Excel表内容的详细过程
2022-10-24 05:43:33
vuex页面刷新后数据丢失的方法
2024-05-09 15:19:29
python random库的简单使用demo
2023-03-03 04:31:32
JS input文本框禁用右键和复制粘贴功能的代码
2024-04-29 13:18:49
Mysql数据库之Binlog日志使用总结(必看篇)
2024-01-20 20:15:16
vue3 自定义指令控制按钮权限的操作代码
2024-05-09 15:08:59
Python计算机视觉里的IOU计算实例
2021-12-07 18:15:10
使用vue.js实现checkbox的全选和多个的删除功能
2024-04-10 10:32:00
如何使用python docx模块操作word文档
2022-04-23 12:16:02
jQuery中ajax和post处理json的不同示例对比
2024-04-16 08:54:10
python同义词替换的实现(jieba分词)
2022-02-10 20:58:00
常用于后台开发的jQuery插件
2010-09-25 12:47:00
TensorFlow实现Softmax回归模型
2023-07-14 19:07:51
Django缓存Cache使用详解
2023-09-06 02:16:33
利用phpmyadmin设置mysql的权限方法
2023-11-24 02:12:46
JSP之表单提交get和post的区别详解及实例
2024-03-26 09:06:39
golang struct 实现 interface的方法
2024-05-05 09:28:37
Scripting.Dictionary 对象
2007-10-13 09:46:00