python

超轻量级php框架startmvc

python实现批量按比例缩放图片效果

更新时间:2020-05-26 07:54:01 作者:startmvc
本文实例为大家分享了python实现批量按比例缩放图片的具体代码,供大家参考,具体内容如

本文实例为大家分享了python实现批量按比例缩放图片的具体代码,供大家参考,具体内容如下

把脚本文件放在要缩放的文件夹下面。

双击运行脚本,输入要缩放的系数。脚本会在当前目录下创建一个scaledImg_xxxx文件夹,如果已经存在,会强制删除,如果删除失败会提示手动删除这个文件夹,再双击运行就可以了。

resizeImg.py


#!/usr/bin/python 
# -*- coding:utf8 -*- 
 
#author@skillart www. 
 
import os 
import shutil 
import Image 
to_scale = 0.5 
processIndex = 0 
def resizeImg(imgPath): 
 global processIndex 
 fileList = [] 
 files = os.listdir(imgPath) 
 for f in files: 
 filePath = imgPath + os.sep + f 
 if(os.path.isfile(filePath)): 
 fileList.append(f) 
 elif(os.path.isdir(filePath)): 
 resizeImg(filePath) 
 for fileName in fileList: 
 processIndex+=1 
 fileFullName = imgPath+os.sep+fileName 
 suffix = fileName[fileName.rfind('.'):] 
 if(suffix == '.png' or suffix == '.jpg'): 
 print 'processing the '+str(processIndex)+'th file:'+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) 
 del reImg 
if __name__ == '__main__': 
 scaleStr = raw_input('input to_scale: ') 
 to_scale = float(scaleStr) 
 scaledPath = '.\\scaledImg_xxxx'; 
 if os.path.isdir(scaledPath): 
 flag = raw_input('the output dir is exist, sure to del it(y/n)') 
 if flag == 'y' or flag == 'yes': 
 try: 
 shutil.rmtree(scaledPath) 
 finally: 
 raw_input('remove dir failed , please removed the dir manually.') 
 else: 
 exit 
 shutil.copytree('.\\',scaledPath) 
 resizeImg(scaledPath) 
 raw_input("resize success") 

生成Icon

generateIcon.py


#!/usr/bin/python 
# -*- coding:utf8 -*- 
 
#author@skillart www. 
 
import os 
import shutil 
import Image 
def resizeImg(imgPathName): 
 print imgPathName 
 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'} 
 if os.path.isfile(imgPathName) == False: 
 print('open imgPathName failed , check the' + imgPathName + "is exist!") 
 exit 
 img = Image.open(imgPathName) 
 index = imgPathName.rfind(os.sep) 
 prefix = imgPathName[:index+1] 
 for key, value in iconDict.items(): 
 # print key,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) 
 print fileName,w,h 
 del img 
if __name__ == '__main__': 
 scaledPath = '.\\createIcon' 
 if os.path.isdir(scaledPath): 
 flag = raw_input('the output dir is exist, sure to del it(y/n)') 
 if flag == 'y' or flag == 'yes': 
 try: 
 shutil.rmtree(scaledPath) 
 finally: 
 raw_input('remove dir failed , please removed the dir manually.') 
 else: 
 exit 
 shutil.copytree('.\\',scaledPath) 
 fileList = [] 
 files = os.listdir(scaledPath) 
 for f in files: 
 filePath = scaledPath + os.sep + f 
 if os.path.isfile(filePath) : 
 suffix = filePath[filePath.rfind('.'):] 
 if(suffix == '.png' or suffix == '.jpg'): 
 print filePath 
 resizeImg(filePath) 
 break 
 raw_input("resize success") 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python批量按比例缩放图片 python缩放图片 python按比例缩放图片