Python日课-3.1-pillow滤镜初识

Python 日课 2021-01-18:Pillow 滤镜初识。

曾老师的 Python 课 第一课的所有内容已经全部发布,包括课程 PPT、课程视频都可以免费获取,可以使用微信扫描下面的二维码进群获取。

请进群索取课程 PPT 以及视频播放地址

这套课程有两条教学线:

  1. 现场教学,约两周一次,每次一小时,主要为实际案例的讲解。
  2. 微信群教学,每日一次,由易到难讲解 Python 知识点,Python 相关的小故事,业界八卦,IT 行业最新信息。

各位同学大家好哇,今天周一,我们的 Python 课堂又来啦。

在上周三的课程 Python日课-2.4-pip的使用 中,我们安装了 pillow 库,今天我们就来看看 pillow 能干点啥。

pillow 是一个开源的图像处理库,虽然是一个外部库,但它已经成为了 Python 事实上的图像处理标准。Pillow 的官网在这里:

https://pillow.readthedocs.io/en/stable/

如果你更喜欢看中文文档的话,可以参考这里:

https://pillow-cn.readthedocs.io/zh_CN/latest/

我们使用最新的 Pillow 8.1 来做讲解,中文文档是基于 Pillow 2.4 翻译的。

完成今天的课程,曾老师准备了两张图片:

前台.jpg

餐厅.jpg

没错,这两张图片就是 SAGI GAMES 现场用手机拍摄的。

为了方便讲述,我们所有的代码均位于 pycourse 文件夹中,这两张照片位于 pycourse/assets/ 文件夹中,结构如下:

pycourse 文件夹结构

pillow1.py 文件的作用是将 「餐厅.jpg」进行高斯模糊处理,处理后的文件名为「餐厅_高斯模糊_10.jpg」。

餐厅_高斯模糊_10.jpg

pillow2.py 文件的作用是将「前台.jpg」进行模式滤镜处理,处理后的文件名为「前台_模式_10.jpg」。

前台_模式_10.jpg

pillow1.py 的内容如下:

 1# 曾老师的 Python 课
 2# 课程地址:https://blog.zengrong.net/tag/pythoncouse/
 3# 课程内容:2021-01-18 pillow 高斯模糊滤镜
 4# 高斯模糊滤镜文档: https://pillow.readthedocs.io/en/4.1.x/reference/ImageFilter.html#PIL.ImageFilter.GaussianBlur
 5
 6from pathlib import Path
 7from PIL import Image
 8from PIL.ImageFilter import GaussianBlur
 9
10# 当前文件所在文件夹
11basedir = Path(__file__).parent
12
13# 原始图像文件
14sfile = basedir.joinpath('assets/餐厅.jpg')
15# 目标图像文件
16tfile = basedir.joinpath('assets/餐厅_高斯模糊_10.jpg')
17
18# 创建一个高斯模糊滤镜对象,模糊半径为 10
19gb = GaussianBlur(radius=10)
20
21# 打开原始图像
22simg = Image.open(sfile)
23# 对原始图像文件使用滤镜,返回一个目标图像
24timg = simg.filter(gb)
25
26# 将应用过滤镜的图像文件保存到目标图像文件中
27timg.save(tfile)

pillow2.py 的内容如下:

 1# 曾老师的 Python 课
 2# 课程地址:https://blog.zengrong.net/tag/pythoncouse/
 3# 课程内容:2021-01-18 pillow 模式滤镜
 4# 模式滤镜文档: https://pillow.readthedocs.io/en/4.1.x/reference/ImageFilter.html#PIL.ImageFilter.ModeFilter
 5
 6from pathlib import Path
 7from PIL import Image
 8from PIL.ImageFilter import ModeFilter
 9
10# 当前文件所在文件夹
11basedir = Path(__file__).parent
12
13# 原始图像文件
14sfile = basedir.joinpath('assets/前台.jpg')
15# 目标图像文件
16tfile = basedir.joinpath('assets/前台_模式_10.jpg')
17
18# 创建一个模式滤镜对象,size 为 10
19gb = ModeFilter(size=10)
20
21# 打开原始图像
22simg = Image.open(sfile)
23# 对原始图像文件使用滤镜,返回一个目标图像
24timg = simg.filter(gb)
25
26# 将应用过滤镜的图像文件保存到目标图像文件中
27timg.save(tfile)

分别执行:

1python pillow1.py 
2python pillow2.py

就可以使用滤镜生成新的图像啦!生成的图像位于 pycourse/assets/ 文件夹中。

今天的课程就到这里啦,欢迎大家到群里讨论。

下载源码附件:

1 文件
全文完