每天一个小程序——第 0005 题:批量修改图片尺寸,使之不超过 iPhone5 分辨率
*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 分辨率相关推荐
- 新发的日常小实验——使用python的PIL库批量修改图片尺寸,确保宽和高是4的倍数(Unity、PIL、Pillow、压缩)
文章目录 一.问题:图片导入Unity被调整成2的N次方 二.设置不转换成2的N次方 三.使用ETC压缩格式,图片宽高必须是4的倍数 四.使用python的PIL库批量修改图片尺寸,确保宽和高是4的倍 ...
- background-image属性设置图片尺寸_Matlab | 批量修改图片尺寸及图片灰度化
介绍: 在情绪认知的心理学实验中,我们从不同的人脸图片库获取实验所需的实验材料.在正式使用之前往往需要对人脸进行预处理,以控制无关变量对实验结果的影响.常见的预处理有将图片修改为统一尺寸.灰度化.本文 ...
- 批量修改图片尺寸的方法
批量修改图片尺寸的方法 在日常的工作和生活中,我们经常会遇到需要对图片的尺寸进行修改,只需要修改几张还好,可以要修改几十张甚至更多的情况下,就真的很枯燥很费时间了.如果能够批量修改就好了. 我发现还真 ...
- Thumbnails批量修改图片尺寸
Thumbnails批量修改图片尺寸 package com.test;import net.coobird.thumbnailator.Thumbnails; import net.coobird. ...
- 批量修改图片尺寸怎么做?这几种方法轻松批量修改
当我们需要将图片用于不同的用途时,可能需要对其尺寸进行修改,如果我们需要在社交媒体上分享图片,可能需要将其尺寸调整到符合平台要求的大小,在设计中,有时需要将图片按照特定的尺寸比例进行裁剪或拉伸,以适应 ...
- python怎样批量修改文件大小_python:批量修改文件名批量修改图片尺寸
功能:批量修改图片尺寸 图像的几何变换,如缩放.旋转和翻转等,在图像处理中扮演着重要的角色,python中的Image类分别提供了这些操作的接口函数,下面进行逐一介绍. 1.图像的缩放 图像的缩放使用 ...
- matlab中批量修改图片尺寸
对于做图像处理的朋友,如何把图片处理成自己想要的尺寸,代码如下! clear; clc; close all; imagePath = 'H:\毕业设计相关matlab代码\vehicles\'; ...
- Photoshop 批量修改图片尺寸
1 打开一张图片之后,选择窗口菜单下的动作选项打开 2.点击右下角的文件夹图标,新建一个动作组并命好名字,然后再在文件夹下新建一个图片尺寸修改动作文件,再点击右边的记录选项: 3.新建组 4.新建动作 ...
- python练习册 每天一个小程序 第0013题
# -*-coding:utf-8-*- '''题目描述:用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-)地址:http://tieba.baidu.com/p/216623 ...
最新文章
- centos 安装2个mysql_CentOs服务器下安装两个个MySql数据库踩坑日记
- Win10无法修改编辑hosts文件
- 图灵71年前提出神经网络!《智能机器》再掀热议,却一生未发表
- element 密码输入框用*显示_用 Java 实现天天酷跑,这个真的有点强了
- 一位软件实施工程师的自述
- 如何将HBuilder中的项目Push至Gitee中!
- 刷题总结——序列操作(权值线段树套树状数组)
- PHP自学3——在html的table标签中显示用户提交表单
- 正则表达式 RegularExpressions
- 【转】Visio(流程图绘制软件)的免费替代品
- 深度学习 --- 玻尔兹曼分布详解
- numpy系列之拷贝和视图
- MFC去掉窗口右上方最大化最小化关闭按钮
- 数据库锁的分类(粒度,级别)
- has been blocked by CORS policy: Response to preflight request doesn‘t pass access control check
- py-faster-rcnn 中 shell脚本解读:./experiments/scripts/faster_rcnn_alt_opt.sh
- Spark 调优技巧总结
- 微信小程序:scroll-view制作横向滚动导航条特效
- 数字内容市场水量上涨,阜博集团能否成为“鲶鱼”?
- 代码审计(入门篇)-- 牛马留言板代码审计