未加星标

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

字体大小 | |
[开发(python) 所属分类 开发(python) | 发布者 店小二03 | 时间 | 作者 红领巾 ] 0人收藏点击收藏

本文实例为大家分享了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实现更改图片尺寸大小的方法(基于Pillow包)用python 批量更改图像尺寸到统一大小的方法

本文开发(python)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程

主题: Python删除TI
tags: png,Icon,os,scaledPath,filePath,imgPathName,input,raw,dir,resizeImg,Image,shutil,import
分页:12
转载请注明
本文标题:python实现批量按比例缩放图片效果
本站链接:https://www.codesec.net/view/574841.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(python) | 评论(0) | 阅读(173)