#!C:\Python37 # -*- coding:utf-8 -*- from PIL import Image from PIL.ExifTags import TAGS import os import optparse def getImageInfo(imgpath,list=[]): exifData ={} try: img = Image.open(imgpath)#type:Image.Image #img.show() imgExinfo = img._getexif() #print(imgExinfo) img.close() except Exception as e: #print(e) return if imgExinfo: for (tag ,value)in imgExinfo.items(): decoded = TAGS.get(tag) exifData[decoded] = value #print(exifData) #若在list中指定图片具体信息,则显示具体信息,默认显示图片所有信息 if len(list)>0: tem ={} for info in list: if info in exifData.keys(): tem[info] = exifData[info] else: tem[info] = None print(f'[+]imge {imgpath} info:{tem}') else: print(f'[+]Image {imgpath} info:{exifData}') else: print(f'[+]Image:{imgpath} not found info') return def listdir(filepath): filelist =[] if os.path.isfile(filepath): filelist.append(filepath) print('[*]add file:',filepath) else: dirlist = os.listdir(filepath) filepath=filepath.strip('/') filepath = filepath +'/' for i in range(len(dirlist)): dirlist[i] = filepath + dirlist[i] #print(dirlist) for dir in dirlist: tmplist = listdir(dir) filelist = filelist+tmplist #print(filelist) return filelist if __name__ == '__main__': # filepath = 'D:\\pythonTest' # print(filepath) # filepath = './file/' #infolist = ['GPSInfo'] parser = optparse.OptionParser('usage:--u <file or directory> -l <imgeinfo>') parser.add_option('--u ' ,dest = 'filepath',type='string',help = 'specify a file or directory') parser.add_option('-l' ,dest ='infolist',type= 'string' , help = 'specify image info') (options,args)= parser.parse_args() filepath = options.filepath list = options.infolist if (filepath==None): print(parser.usage) exit(0) if list==None: infolist = [] else: list = list.strip() infolist = list.split(',') filelist = listdir(filepath) for file in filelist: getImageInfo(file,infolist)
获取图片或者是目录下所有图片的imageinfo
最新推荐文章于 2022-05-10 15:08:43 发布