python 通过exifread读取照片信息


Posted in Python onDecember 24, 2020

通过第三方库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))

以上就是python 通过exifread读取照片信息的详细内容,更多关于python 读取照片信息的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
使用python开发vim插件及心得分享
Nov 04 Python
Python实现给文件添加内容及得到文件信息的方法
May 28 Python
django使用图片延时加载引起后台404错误
Apr 18 Python
用python实现百度翻译的示例代码
Mar 09 Python
Python实现简易过滤删除数字的方法小结
Jan 09 Python
Opencv实现抠图背景图替换功能
May 21 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
Jun 05 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
Python re 模块findall() 函数返回值展现方式解析
Aug 09 Python
30秒学会30个超实用Python代码片段【收藏版】
Oct 15 Python
Python爬虫:Request Payload和Form Data的简单区别说明
Apr 30 Python
python3 字符串str和bytes相互转换
Mar 23 Python
python 如何上传包到pypi
Dec 24 #Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 #Python
python xlsxwriter模块的使用
Dec 24 #Python
想学画画?python满足你!
Dec 24 #Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
Dec 24 #Python
用python获取txt文件中关键字的数量
Dec 24 #Python
举例讲解Python装饰器
Dec 24 #Python
You might like
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
js计算页面刷新的次数
2009/07/20 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
JavaScript prototype属性详解
2016/10/25 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
Angular的$http与$location
2016/12/26 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
2020/11/16 Javascript
python中的列表推导浅析
2014/04/26 Python
Python中os.path用法分析
2015/01/15 Python
Python实现各种排序算法的代码示例总结
2015/12/11 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
Python面向对象之类的内置attr属性示例
2018/12/14 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
一道写SQL的面试题和答案
2013/11/19 面试题
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
建筑工程专业学生的自我评价
2013/12/25 职场文书
《桂林山水》教学反思
2014/02/08 职场文书
药学职务聘任书
2014/03/29 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
文明家庭事迹材料
2014/12/20 职场文书
环保建议书范文
2015/09/14 职场文书
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
Python实现排序方法常见的四种
2021/07/15 Python