Python 读取照片的信息:拍摄时间、拍摄设备、经纬度等
时间:2019-09-17
本文章向大家介绍Python 读取照片的信息:拍摄时间、拍摄设备、经纬度等,主要包括Python 读取照片的信息:拍摄时间、拍摄设备、经纬度等使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
通过第三方库exifread读取照片信息。
exifread官网:https://pypi.org/project/ExifRead/
一、安装exifread
pip install exifread
二、读取照片信息例子
import exifread # 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 getLatOrLon(refKey, tudeKey): ''' 获取经度或纬度 ''' if refKey not in tags: return None ref=tags[refKey].printable LatOrLon=tags[tudeKey].printable[1:-1].replace(" ","").replace("/",",").split(",") LatOrLon=float(LatOrLon[0])+float(LatOrLon[1])/60+float(LatOrLon[2])/float(LatOrLon[3])/3600 if refKey == 'GPS GPSLatitudeRef' and tags[refKey].printable != "N": LatOrLon=LatOrLon*(-1) if refKey == 'GPS GPSLongitudeRef' and tags[refKey].printable != "E": LatOrLon=LatOrLon*(-1) return LatOrLon print('经度:', getLatOrLon('GPS GPSLongitudeRef','GPS GPSLongitude')) print('纬度:', getLatOrLon('GPS GPSLatitudeRef','GPS GPSLatitude'))
原文地址:https://www.cnblogs.com/gdjlc/p/11537776.html
- javascript 闭包详解
- 3016: [Usaco2012 Nov]Clumsy Cows
- POJ 3207 Ikki's Story IV - Panda's Trick(2-SAT)
- 3359: [Usaco2004 Jan]矩形
- 漫谈Java IO之 Netty与NIO服务器
- Java线程的几种状态
- POJ3683 Priest John's Busiest Day(2-SAT)
- javascript 面向对象(实现继承的几种方式)
- Base64 的 JavaScript 实现 js-base64
- HTTP请求详解
- 漫谈Java IO之 NIO那些事儿
- 1593: [Usaco2008 Feb]Hotel 旅馆
- BZOJ 1823: [JSOI2010]满汉全席(2-SAT)
- 3360: [Usaco2004 Jan]算二十四
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Mysql 常用查询性能优化
- 并发编程的基础
- Apache Atlas系列 -- 部署
- 深入浅出Spark的Checkpoint机制
- 基础知识 | R语言绘图保存的pdf图片无法显示中文怎么办?
- 基础知识 | R语言绘图基础之柱形图
- 高维数据 | R语言绘图基础之主成分分析
- 高维数据 |R语言数据可视化之t-SNE
- 基础知识 | R语言数据分析之控制流
- 基础知识 | R语言数据处理之日期值的转换
- 云开发 CloudBase CMS 内容管理系统正式开源啦!
- 高维数据 | R语言数据可视化之热力图
- 高维数据 | R语言数据可视化之日历图
- 打卡群刷题总结0804——二叉树的中序遍历
- 基础知识 | R语言数据管理之SQL语句