*PIL为第三方库,需要自行安装。

# -*- coding: utf-8 -*-
"""
第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。
"""
"""
分析一下,首先我们需要遍历目录,读取照片文件。
然后我们需要读取照片的尺寸,并与iphone5分辨率进行比较。(iphone5 分辨率:1136*640)
最后如果符合就跳过,如果不符合则缩小照片尺寸。
"""import os
from PIL import Imagedef 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*640widthOfIphone, 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)continuewidthOfImg, 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 /= biggerRatioheightOfImg /= 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

*图片生成正常。

每天一个小程序——第 0005 题:批量修改图片尺寸,使之不超过 iPhone5 分辨率相关推荐

  1. 新发的日常小实验——使用python的PIL库批量修改图片尺寸,确保宽和高是4的倍数(Unity、PIL、Pillow、压缩)

    文章目录 一.问题:图片导入Unity被调整成2的N次方 二.设置不转换成2的N次方 三.使用ETC压缩格式,图片宽高必须是4的倍数 四.使用python的PIL库批量修改图片尺寸,确保宽和高是4的倍 ...

  2. background-image属性设置图片尺寸_Matlab | 批量修改图片尺寸及图片灰度化

    介绍: 在情绪认知的心理学实验中,我们从不同的人脸图片库获取实验所需的实验材料.在正式使用之前往往需要对人脸进行预处理,以控制无关变量对实验结果的影响.常见的预处理有将图片修改为统一尺寸.灰度化.本文 ...

  3. 批量修改图片尺寸的方法

    批量修改图片尺寸的方法 在日常的工作和生活中,我们经常会遇到需要对图片的尺寸进行修改,只需要修改几张还好,可以要修改几十张甚至更多的情况下,就真的很枯燥很费时间了.如果能够批量修改就好了. 我发现还真 ...

  4. Thumbnails批量修改图片尺寸

    Thumbnails批量修改图片尺寸 package com.test;import net.coobird.thumbnailator.Thumbnails; import net.coobird. ...

  5. 批量修改图片尺寸怎么做?这几种方法轻松批量修改

    当我们需要将图片用于不同的用途时,可能需要对其尺寸进行修改,如果我们需要在社交媒体上分享图片,可能需要将其尺寸调整到符合平台要求的大小,在设计中,有时需要将图片按照特定的尺寸比例进行裁剪或拉伸,以适应 ...

  6. python怎样批量修改文件大小_python:批量修改文件名批量修改图片尺寸

    功能:批量修改图片尺寸 图像的几何变换,如缩放.旋转和翻转等,在图像处理中扮演着重要的角色,python中的Image类分别提供了这些操作的接口函数,下面进行逐一介绍. 1.图像的缩放 图像的缩放使用 ...

  7. matlab中批量修改图片尺寸

    对于做图像处理的朋友,如何把图片处理成自己想要的尺寸,代码如下! clear; clc; close all;   imagePath = 'H:\毕业设计相关matlab代码\vehicles\'; ...

  8. Photoshop 批量修改图片尺寸

    1 打开一张图片之后,选择窗口菜单下的动作选项打开 2.点击右下角的文件夹图标,新建一个动作组并命好名字,然后再在文件夹下新建一个图片尺寸修改动作文件,再点击右边的记录选项: 3.新建组 4.新建动作 ...

  9. python练习册 每天一个小程序 第0013题

    # -*-coding:utf-8-*- '''题目描述:用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-)地址:http://tieba.baidu.com/p/216623 ...

最新文章

  1. centos 安装2个mysql_CentOs服务器下安装两个个MySql数据库踩坑日记
  2. Win10无法修改编辑hosts文件
  3. 图灵71年前提出神经网络!《智能机器》再掀热议,却一生未发表
  4. element 密码输入框用*显示_用 Java 实现天天酷跑,这个真的有点强了
  5. 一位软件实施工程师的自述
  6. 如何将HBuilder中的项目Push至Gitee中!
  7. 刷题总结——序列操作(权值线段树套树状数组)
  8. PHP自学3——在html的table标签中显示用户提交表单
  9. 正则表达式 RegularExpressions
  10. 【转】Visio(流程图绘制软件)的免费替代品
  11. 深度学习 --- 玻尔兹曼分布详解
  12. numpy系列之拷贝和视图
  13. MFC去掉窗口右上方最大化最小化关闭按钮
  14. 数据库锁的分类(粒度,级别)
  15. has been blocked by CORS policy: Response to preflight request doesn‘t pass access control check
  16. py-faster-rcnn 中 shell脚本解读:./experiments/scripts/faster_rcnn_alt_opt.sh
  17. Spark 调优技巧总结
  18. 微信小程序:scroll-view制作横向滚动导航条特效
  19. 数字内容市场水量上涨,阜博集团能否成为“鲶鱼”?
  20. 代码审计(入门篇)-- 牛马留言板代码审计

热门文章

  1. 蓝牙耳机网页看b站视频自动关机
  2. Python 入门知识1
  3. 单片机编程自己编写的一个很简单的传感器控制代码
  4. 应用于智慧景区的景观智慧灯杆解决方案
  5. Python_七十二变_二进制和字符编码
  6. 特种光纤丨光谱分析仪用光纤
  7. CentOS 7 安装字体库 中文字体
  8. 简单便签程序--青柠便签
  9. html5实现像素鸟,[Swift]SpriteKit实现类似像素鸟的小游戏 - Crashy Plane
  10. sofasofa竞赛:一 公共自行车使用量预测