- 积分
- 3638
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2019-5-24 17:02:29
|
显示全部楼层
本帖最后由 15195775117 于 2019-5-24 19:37 编辑
二、代码&运行
----------------
附件whl文件就是读取照片exif信息的模块文件,
whl即wheel,怪不得网上用python的都说找“轮子”---轮子就是别人写好的工具块,找到了工具块就不用自己重新写了,“轮子”还跟“重新发明轮子”的俗语相通。
值得注意的是,我把运行环境改为python2后,其汉语支持比python3差,估计跟IDL一个水平了,经我试验,python2对汉语文件夹名出现问题,所以,最好别用汉语。
对照片的读取代码参考一下帖子:
https://www.cnblogs.com/kearney908/p/9187307.html
代码如下:
def exifread_infos(photo):
import exifread
#加载 ExifRead 第三方库 https://pypi.org/project/ExifRead/
#获取照片时间、经纬度信息
#photo参数:照片文件路径
# Open image file for reading (binary mode)
f = open(photo, 'rb')
# Return Exif tags
tags = exifread.process_file(f)
try:
#拍摄时间
EXIF_Date=tags["EXIF DateTimeOriginal"].printable
#纬度
LatRef=tags["GPS GPSLatitudeRef"].printable
Lat=tags["GPS GPSLatitude"].printable[1:-1].replace(" ","").replace("/",",").split(",")
Lat=float(Lat[0])+float(Lat[1])/60+float(Lat[2])/float(Lat[3])/3600
if LatRef != "N":
Lat=Lat*(-1)
#经度
LonRef=tags["GPS GPSLongitudeRef"].printable
Lon=tags["GPS GPSLongitude"].printable[1:-1].replace(" ","").replace("/",",").split(",")
Lon=float(Lon[0])+float(Lon[1])/60+float(Lon[2])/float(Lon[3])/3600
if LonRef!="E":
Lon=Lon*(-1)
f.close()
except :
return "ERROR:请确保照片包含经纬度等EXIF信息。"
else:
return EXIF_Date,Lat,Lon
photo=r'C:\Users\Administrator\Desktop\wy\35369511.jpg'
ex=exifread_infos(photo)
print(type(ex))
print(ex)
print(ex[-1])
输出结果:<type 'tuple'>
('2019:05:23 18:51:01', 31.873989583333334, 117.24054513888889)
117.240545139
成功输出,撒花!
|
|