每天一个小程序——第 0005 题:批量修改图片尺寸,使之不超过 iPhone5 分辨率
2016-09-20 17:28
295 查看
*PIL为第三方库,需要自行安装。
部分结果:
…
以下文件格式有误:c:\PE\EE\0005_v1.py
以下文件格式有误:c:\PE\EE\byOther.py
已生成了新的图片:resized_my.jpg,尺寸为:(640, 641)
以下文件格式有误:c:\PE\EE\temp.py
以下文件格式有误:c:\PE\EE\text_en.txt
*图片生成正常。
# -*- coding: utf-8 -*- """ 第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。 """ """ 分析一下,首先我们需要遍历目录,读取照片文件。 然后我们需要读取照片的尺寸,并与iphone5分辨率进行比较。(iphone5 分辨率:1136*640) 最后如果符合就跳过,如果不符合则缩小照片尺寸。 """ import os from PIL import Image def resize_images_of_a_folder(): # 通过os.walk()遍历文件夹,暂时只会固定文件夹 # os.walk() --> 输入文件夹位置,输出3段元组,【文件夹位置】、【文件夹下的所有文件夹】、【文件夹下的所有文件】 # os.sep --> 系统分隔符,避免多操作系统时,出现问题 for i in os.walk('c:'+os.sep+'PE'+os.sep+'EE'): listOfImg = (i[2]) # 设定iphone尺寸:1136*640 widthOfIphone, heightOfIphone = 1136, 640 # 生成所有文件的位置信息 for n in listOfImg: # 打开图片,如果打不开(非图片)则报错提示 try: myImg = Image.open('c:'+os.sep+'PE'+os.sep+'EE'+os.sep+n) except Exception: print ("以下文件格式有误:"+'c:'+os.sep+'PE'+os.sep+'EE'+os.sep+n) continue widthOfImg, heightOfImg = myImg.size """ # 对比图片大小 # 思路: # 1.区分图片长短边 # 2.与iphone分辨率的长短边分别取比值(图片除以iphone) # 3.对比比值,将原图长短边都除以较大的比值 """ # 区分长短边 tempWidth, tempHeight = max(widthOfImg, heightOfImg), min(widthOfImg, heightOfImg) # 取比值 ratioOfWidth, ratioOfHeight = tempWidth/widthOfIphone, tempHeight/heightOfIphone # 比较比值,取较大比值继续判断 biggerRatio =max(ratioOfWidth, ratioOfHeight) # 较大的比值大于1,则将原图比例除以该比值得到新的尺寸。 if biggerRatio > 1: widthOfImg /= biggerRatio heightOfImg /= biggerRatio # 使用resize()函数定义新的尺寸 # resize()需要整数,因为这边取整为了不超过指定尺寸,所以需要舍弃小数,int()方法默认舍弃,直接使用即可。 newImg = myImg.resize((int(widthOfImg), int(heightOfImg))) newImg.save('c:'+os.sep+'PE'+os.sep+'EE'+os.sep+'resized_'+n) print ("已生成了新的图片:"+'resized_'+n+ ",尺寸为:"+ str(newImg.size)) myImg.close() if __name__ == '__main__': resize_images_of_a_folder()
部分结果:
…
以下文件格式有误:c:\PE\EE\0005_v1.py
以下文件格式有误:c:\PE\EE\byOther.py
已生成了新的图片:resized_my.jpg,尺寸为:(640, 641)
以下文件格式有误:c:\PE\EE\temp.py
以下文件格式有误:c:\PE\EE\text_en.txt
*图片生成正常。
相关文章推荐
- Python每日练习 04 你有一个目录,装有很多图片,现在你要把它们的尺寸变成不都大于Iphone5分辨率的大小
- 用photoshop批量修改图片尺寸(转)
- 第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。
- 批量修改图片尺寸的方法
- 每天一个小程序—0013题(爬图片+正则表达式 or BeautifulSoup)
- Linux下用一条命令批量修改图片尺寸。
- 每天一个小程序—0005题(批量处理图片大小)
- 批量修改图片尺寸
- Shell脚本批量修改图片尺寸
- Python 练习册,每天一个小程序----------000 图片右上角加上红色的数字
- photoshop修改图片的尺寸和分辨率
- Python批量修改图片分辨率
- Linux系统用命令批量修改图片尺寸
- Python 批量修改图片格式和尺寸
- 使用Adobe Photoshop CC 2015批量修改图片尺寸
- Golang 编写的图片压缩程序,质量、尺寸压缩,批量、单张压缩
- python实现批量修改图片格式和尺寸
- 【转】用photoshop批量修改图片尺寸
- 【Photoshop】批量修改图片分辨率
- 批量修改图片分辨率——PS动作操作方…