python实现批量按比例缩放图片效果
本文实例为大家分享了python实现批量按比例缩放图片的具体代码,供大家参考,具体内容如下
把脚本文件放在要缩放的文件夹下面。
双击运行脚本,输入要缩放的系数。脚本会在当前目录下创建一个scaledImg_xxxx文件夹,如果已经存在,会强制删除,如果删除失败会提示手动删除这个文件夹,再双击运行就可以了。
resizeImg.py
#!/usr/bin/python #-*-coding:utf8-*- #author@skillartwww. importos importshutil importImage to_scale=0.5 processIndex=0 defresizeImg(imgPath): globalprocessIndex fileList=[] files=os.listdir(imgPath) forfinfiles: filePath=imgPath+os.sep+f if(os.path.isfile(filePath)): fileList.append(f) elif(os.path.isdir(filePath)): resizeImg(filePath) forfileNameinfileList: processIndex+=1 fileFullName=imgPath+os.sep+fileName suffix=fileName[fileName.rfind('.'):] if(suffix=='.png'orsuffix=='.jpg'): print'processingthe'+str(processIndex)+'thfile:'+fileFullName img=Image.open(fileFullName) w,h=img.size tw=int(w*to_scale) th=int(h*to_scale) reImg=img.resize((tw,th),Image.ANTIALIAS) reImg.save(fileFullName) delreImg if__name__=='__main__': scaleStr=raw_input('inputto_scale:') to_scale=float(scaleStr) scaledPath='.\\scaledImg_xxxx'; ifos.path.isdir(scaledPath): flag=raw_input('theoutputdirisexist,suretodelit(y/n)') ifflag=='y'orflag=='yes': try: shutil.rmtree(scaledPath) finally: raw_input('removedirfailed,pleaseremovedthedirmanually.') else: exit shutil.copytree('.\\',scaledPath) resizeImg(scaledPath) raw_input("resizesuccess")
生成Icon
generateIcon.py
#!/usr/bin/python #-*-coding:utf8-*- #author@skillartwww. importos importshutil importImage defresizeImg(imgPathName): printimgPathName iconDict={'Icon.png':'72x72','Icon@2x.png':'144x144','Icon-29.png':'29x29','Icon-40.png':'40x40','Icon-50.png':'50x50', 'Icon-57.png':'57x57','Icon-58.png':'58x58','Icon-72.png':'72x72','Icon-76.png':'76x76','Icon-80.png':'80x80', 'Icon-100.png':'100x100','Icon-114.png':'114x114','Icon-120.png':'120x120','Icon-144.png':'144x144','Icon-152.png':'152x152', 'FlipCycleTileLarge.png':'300x300','FlipCycleTileMedium.png':'300x300','FlipCycleTileSmall.png':'300x300', 'IconicTileMediumLarge.png':'300x300','IconicTileSmall.png':'300x300','ApplicationIcon.png':'300x300','icon.png':'72x72'} ifos.path.isfile(imgPathName)==False: print('openimgPathNamefailed,checkthe'+imgPathName+"isexist!") exit img=Image.open(imgPathName) index=imgPathName.rfind(os.sep) prefix=imgPathName[:index+1] forkey,valueiniconDict.items(): #printkey,value v_split=value.split('x') w,h=int(v_split[0]),int(v_split[1]) fileName=prefix+key reImg=img.resize((w,h),Image.ANTIALIAS) reImg.save(fileName) printfileName,w,h delimg if__name__=='__main__': scaledPath='.\\createIcon' ifos.path.isdir(scaledPath): flag=raw_input('theoutputdirisexist,suretodelit(y/n)') ifflag=='y'orflag=='yes': try: shutil.rmtree(scaledPath) finally: raw_input('removedirfailed,pleaseremovedthedirmanually.') else: exit shutil.copytree('.\\',scaledPath) fileList=[] files=os.listdir(scaledPath) forfinfiles: filePath=scaledPath+os.sep+f ifos.path.isfile(filePath): suffix=filePath[filePath.rfind('.'):] if(suffix=='.png'orsuffix=='.jpg'): printfilePath resizeImg(filePath) break raw_input("resizesuccess")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。