如何递归缩小图片
java处理图片比较麻烦,自身库不够强大,可以用第三方的GraphicsMagick之类,但这又依赖操作系统环境(windows)。使用upyun,七牛云也可以,但我这些文件最好是在本地就转了,不想使用云工具。
为此,我选用python来做这个事。我的目标是把一个文件夹的所有图片,传为小一点的文件。运行python之前,先安装模块:
pip3 install pillow
再运行代码1.1
代码1.1
import os # 获取图片的基本信息 from PIL import Image from shutil import copyfile def gci(filepath): #遍历filepath下所有文件,包括子目录 files = os.listdir(filepath) for fi in files: fi_d = os.path.join(filepath,fi) if os.path.isdir(fi_d): gci(fi_d) else: # 文件名 fileName=os.path.splitext(fi)[0] # 文件名后缀 fileType=os.path.splitext(fi)[1].lower() #print(fileName+fileType) #print(os.path.join(filepath,fi_d)) if fileType=='.jpg' or fileType=='.png': fsize = os.path.getsize(os.path.join(filepath,fi_d)) if fsize/float(1024)>200: im = Image.open(os.path.join(filepath,fi_d)) #print(im.format, im.size, im.mode,fsize/float(1024)) print('width:%d'%(im.size[0])) #缩到800 percentSize=im.size[0]/800 im.thumbnail((800, im.size[1]/percentSize)) dealDir = filepath.replace('xx中学网站资料', 'xx中学网站资料_deal') if not os.path.isdir(dealDir): os.makedirs(dealDir) im.save(dealDir+'/'+fileName+fileType) else: dealDir=filepath.replace('xx中学网站资料','xx中学网站资料_deal') if not os.path.isdir(dealDir): os.makedirs(dealDir) copyfile(filepath+'/'+fileName+fileType, dealDir+'/'+fileName+fileType) gci('/Users/chengzhong/work/xx中学/xx中学网站资料')
当然,具体的路径、参数,大家根据自己的要求改变
相关阅读
评论:
↓ 广告开始-头部带绿为生活 ↓
↑ 广告结束-尾部支持多点击 ↑