博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python小练】0005
阅读量:4979 次
发布时间:2019-06-12

本文共 1029 字,大约阅读时间需要 3 分钟。

第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。

 

首先,iphone5的分辨率是1136x640。

 

if条件句判断横(纵)向是否大于对应的iphone5像素数,若是再减少像素。

 

code:

from PIL import Imageimport glob, osdef resize():    for files in glob.glob('*.jpg'):        filepath,filename = os.path.split(files) #分割文件名和路径名        fname,fext = os.path.splitext(filename)        im = Image.open(files)        w,h = im.size        if w > 640:            x = w/640.0            w = 640            h = int(h/x)        if h>1136:            x = h/1136.0            h = 1136            w = int(w/x)        print(w, h)        im0 = im.resize((w,h),Image.ANTIALIAS)        im0.save('0005'+filename)resize()

notes:

1. glob module的glob.glob()挑出所有'.jpg'后缀的文件

2. os.path module的split()分割文件名和路径名,splitext()分割文件名和后缀

3. PIL.Image.Image class的resize()函数更改分辨率,Image.ANTIALIAS,如字面意思是“抗锯齿,平滑”。

 

拿其中一张700x525的图片为例:

运行程序后效果:

①加了光滑化

②未加光滑化:

 

可以看见处理后的图片尺寸变小了。至于ANTIALIAS在这里并不明显,如果两张图同时打开重叠对比,肉眼其实可以轻松发现不同。

 

(凑巧这周计算机组成原理的课题是相关内容,感觉这门课最有意思的地方就是每周的小组PPT了(【计组课题】图像和图形)

 

转载于:https://www.cnblogs.com/liez/p/5318025.html

你可能感兴趣的文章
.NET+模块编排+数据库操作类的封装+分层架构+实体类+Ajax.net+Athem.NET+javascript+Activex组件+用户权限等...
查看>>
Markdown不常见功能
查看>>
(二)NUnit单元测试心得
查看>>
hdu_2604Queuing(快速幂矩阵)
查看>>
frame.bounds和center
查看>>
HDU 1102 Constructing Roads
查看>>
android StaticLayout参数解释
查看>>
多线程之ThreadLocal类
查看>>
Qt-读取文本导出word
查看>>
OC语言description方法和sel
查看>>
C#中得到程序当前工作目录和执行目录的五种方法
查看>>
扫描线与悬线
查看>>
用队列和链表的方式解决约瑟夫问题
查看>>
python 迭代器与生成器
查看>>
[django]form的content-type(mime)
查看>>
仿面包旅行个人中心下拉顶部背景放大高斯模糊效果
查看>>
C# 小叙 Encoding (二)
查看>>
CSS自学笔记(14):CSS3动画效果
查看>>
项目应用1
查看>>
基本SCTP套接字编程常用函数
查看>>