本文实例为大家分享了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")
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“python实现批量按比例缩放图片效果”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。