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")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
