检测图片格式,,[Python]代码#
检测图片格式,,[Python]代码#
[Python]代码
# -*- coding: utf-8 -*-import Imageimport os,sysimport argparsedef encodeChinese(msg): type = sys.getfilesystemencoding() return msg.decode('utf-8').encode(type)image_path='保存图片的路径'log_path='输出错误日志'help_image_path=encodeChinese(image_path)help_log_path=encodeChinese(log_path)help_path=encodeChinese('检测给定的文件夹中的文件是否符合要求(格式,大小,分辨率)')parser = argparse.ArgumentParser(description=encodeChinese('检测给定的文件夹中的文件是否符合要求(格式,大小,分辨率)'))parser.add_argument('--dir', action='store', dest='image_dir', help=help_image_path) #common.encodeChinese(help_log_path))parser.add_argument('--log', action='store', dest='log_filename', help=help_log_path) #common.encodeChinese(help_log_path))parser.add_argument('--version', action='version', version='%(prog)s 1.0')args = parser.parse_args()err_image_dir=encodeChinese('没有输入保存图片文件的文件夹')err_log_dir=encodeChinese('没有输入保存错误信息的日志文件名称')# 判断必须给定的参数if args.image_dir is None : print err_image_dir#common.encodeChinese('没有输入保存图片文件的文件夹') sys.exit()if args.log_filename is None : print err_log_dir #common.encodeChinese('没有输入保存错误信息的日志文件名称') sys.exit()rootdir=args.image_direrrPath=args.log_filename#错误文件errFile=open(errPath,'w')def judgeImageType(filename): img = Image.open(filename) fPostfix = os.path.splitext(filename)[1] if((fPostfix == '.png' or fPostfix == '.jpg' or fPostfix == '.PNG' or fPostfix == '.JPG') and (img.mode == 'RGB' or img.mode == 'RGBA')): return True else: print str(filename) + '\t' + encodeChinese('文件不是图片') return Falsedef judgeImageSize(img): width,height = img.size if width > height: max = width else: max = height if max > 512: # print str(filename) + '\t' + encodeChinese('文件尺寸超过512') return False else: # print str(filename) + '\t' + encodeChinese('文件尺寸不超过512') return Truedef judgeImageScale(img): width,height = img.size if(width % 2 == 0 and height % 2 == 0): # print str(filename return True else: return Falsedef judgeImageByte(filename): f = open(filename,'rb') f.seek(0,2) fSize = f.tell() standard = 1024 if(fSize / standard > standard): return False else: return Truedef main(): for parent,dirnames,filenames in os.walk(rootdir): print 'ok' for filename in filenames: fName = filename filename = parent + os.sep + fName try: img = Image.open(filename) except: print str(filename) + '\t' + encodeChinese('这个文件打开错误,不是贴图') errFile.write(str(filename) + '\t' + encodeChinese('这个文件打开错误,不是贴图') + '\n') continue if(judgeImageType(filename)): print str(filename) + '\t' + encodeChinese('这个文件类型正确') if(judgeImageSize(img)): print str(filename) + '\t' + encodeChinese('这个文件的尺寸小于512') if(judgeImageScale(img)): str(filename) + '\t' + encodeChinese('这个文件的尺寸是2的倍数') if(judgeImageByte(filename)): print str(filename) + '\t' + encodeChinese('这个文件不超过1M') errFile.write('\n') else: print str(filename) + '\t' + encodeChinese('这个文件超过1M') errFile.write(str(filename) + '\t' + encodeChinese('这个文件超过1M')) errFile.write('\n') continue else: str(filename) + '\t' + encodeChinese('这个文件的尺寸不是2的倍数') errFile.write(str(filename) + '\t' + encodeChinese('这个文件的尺寸不是2的倍数')) errFile.write('\n') continue else: print str(filename) + '\t' + encodeChinese('这个文件的尺寸大于512') errFile.write(str(filename) + '\t' + encodeChinese('这个文件的尺寸大于512')) errFile.write('\n') continue else: print str(filename) + '\t' + encodeChinese('这个文件类型不正确') errFile.write(str(filename) + '\t' + encodeChinese('这个文件类型不正确') + '\n') continuemain()errFile.close()
相关内容
- 金山快盤自動簽到 python 3.2,動簽,[Python]代码#!
- 使用HTML/CSS/JS开发桌面程序(基于QWebkit),cssqwebkit,s
- 从百度下载MP3歌词并把歌词设置在MP3文件中,以便在
- 最新python3 的金山快盘登录签到多功能 学习好帮手,
- 使用Python画三维函数图象,python画函数图象,[Python]代码
- 太极匀手,马步必备,太极匀马步必备,[Python]代码#!
- python调用win32应用程序,python调用win32,[Python]代码fr
- 斐波那契数,,[Python]代码#-
- 将List转成XML,List转成XML,[Python]代码#
- 在pymongo中使用sql的like语句,pymongolike,db.houses.fi
评论关闭