判断图片分辨率并修改,判断图片分辨率,碰到许多图片分辨率都很大
判断图片分辨率并修改,判断图片分辨率,碰到许多图片分辨率都很大
碰到许多图片分辨率都很大,我按照width和height最大边,更改为1024,另一边为等比缩放,上代码:
# -*- coding: utf-8 -*-import os,sys,ImagerootDir = r'c:\\images'targetDir = r'c:\\imagesover'def encodeChinese(msg): type = sys.getfilesystemencoding() return msg.decode('UTF-8').encode(type)errFile = open(r'c:\\errFile.txt','w')def judgeSize(im): #判断图片分辨率,如果最大边超过1024返回False,如果不超过返回True mySize = im.size maxValue = max(mySize) minValue = min(mySize) if(maxValue > 1024): return False else: return Truedef returnSize(im): #返回图片大小,返回两个值,第一个返回值总为最大 max,min = im.size if max > min: return max,min else: return min,maxdef changeSize(im,max,min): value = max/1024 min = min/value newimg = im.resize((1024,min),Image.ANTIALIAS) return newimgdef main(): for parent,dirnames,filenames in os.walk(rootDir): for filename in filenames: fName = filename filename = parent + os.sep + filename fPostfix = os.path.splitext(filename)[1] try: img = Image.open(filename) except: print filename print encodeChinese('打开这个文件出错') continue #img.load() print filename print fPostfix if(fPostfix !='.jpg' and fPostfix !='.png' and fPostfix != '.JPG' and fPostfix != '.PNG'): errFile.write(str(filename) + '\\n') errFile.write(encodeChinese('上面这个文件不是图片,请检查...') + '\\n') errFile.write('\\n') else: print 'juageSize()' if(judgeSize(img) == False): print 'judgeSize == False' max,min = returnSize(img) newimg = changeSize(img,max,min) newimg.save(targetDir + os.sep + fName) print str(targetDir + os.sep + fName) print encodeChinese('保存完毕') print encodeChinese('处理完毕') errFile.close()main()#该片段来自于http://byrx.net
相关内容
- 使用python测测你的系统最多能创建多少个线程,python线
- 一个简单的MySQLdb封装类(3.2),mysqldb封装类3.2,__author__
- python自定义字典的扩展类,让字典操作起来更容易,
- 批量剪切图片 - Python,,import osfro
- Kindeditor+web.py+SAE Storage 实现文件上传,kindeditorweb.py,#上
- python mysql insert delete query,pythonmysql,python连接mysq
- ergodic_db_tb.py,,遍历数据库表及其相关表操
- 如何获得python对象变量的类型名字,python对象变量类型
- python从url中获取文件名,,import urlli
- 在Django中使用group_by,django使用group_by,在Django中怎样使
评论关闭