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


Posted in Python onMarch 30, 2018

本文实例为大家分享了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中字典(dict)和列表(list)的排序方法实例
Jun 16 Python
Python通过matplotlib绘制动画简单实例
Dec 13 Python
Python判断对象是否为文件对象(file object)的三种方法示例
Apr 26 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
Python pip替换为阿里源的方法步骤
Jul 02 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
使用python爬取抖音视频列表信息
Jul 15 Python
python argparser的具体使用
Nov 10 Python
python torch.utils.data.DataLoader使用方法
Apr 02 Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 Python
深入了解Python 变量作用域
Jul 24 Python
python 匿名函数与三元运算学习笔记
Oct 23 Python
python放大图片和画方格实现算法
Mar 30 #Python
python实现数独游戏 java简单实现数独游戏
Mar 30 #Python
简单实现python数独游戏
Mar 30 #Python
Python使用MD5加密算法对字符串进行加密操作示例
Mar 30 #Python
windows环境下tensorflow安装过程详解
Mar 30 #Python
Python切片工具pillow用法示例
Mar 30 #Python
Python实现OpenCV的安装与使用示例
Mar 30 #Python
You might like
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
react实现换肤功能的示例代码
2018/08/14 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
2020/12/20 Javascript
python的dict,set,list,tuple应用详解
2014/07/24 Python
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
详解Python中heapq模块的用法
2016/06/28 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
python反扒机制的5种解决方法
2021/02/06 Python
高性能装备提升营地:Kammok
2019/02/27 全球购物
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
2015/12/03 面试题
大学生求职简历的自我评价范文
2013/10/12 职场文书
音乐表演专业毕业生求职信
2013/10/14 职场文书
餐饮业创业计划书范文
2014/01/06 职场文书
百度吧主申请感言
2014/01/12 职场文书
党员政治学习材料
2014/05/14 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
面试通知短信
2015/04/20 职场文书
不同意离婚答辩状
2015/05/22 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python