小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
一、前言
现在我们都喜欢给图片添加滤镜,现在很多相机也自带了许多滤镜。我们可以在拍照的时候选择需要的滤镜。但是有时候我们需要给大量图片添加同样的滤镜,这个时候手动添加就非常麻烦了。为了方便,我们可以使用程序来帮我们完成添加滤镜的操作。
二、Pillow中的滤镜
Pillow
模块中包含了许多图片操作,其中ImageFilter
模块就是专门用来添加滤镜的。里面内置了许多滤镜,包括模糊效果、细节、浮雕效果、平滑等。下面我们就来简单看看吧。
from PIL import Image, ImageFilter
# 打开图片
img = Image.open("test.jpg")
# 给图片添加模糊效果
gaussian = img.filter(ImageFilter.GaussianBlur)
# 保存模糊后的图片
gaussian.save("1.jpg")
原图和效果图对比如下:
可以看到右边的图片变的模糊了。其实这就是高斯模糊的操作。
除了模糊操作,Pillow
还包括了许多其它滤镜,大致如下:
滤镜值 | 滤镜名词 |
---|---|
BLUR | 模糊效果 |
CONTOUR | 轮廓 |
DETAIL | 细节 |
EDGE_ENHANCE | 边缘增强 |
EDGE_ENHANCE_MORE | 边缘增强plus |
EMBOSS | 浮雕效果 |
FIND_EDGES | 寻找边缘 |
SMOOTH | 平滑 |
我们可以传入相应的值来给图片添加相应的滤镜。比如下面这个:
from PIL import Image, ImageFilter
img = Image.open("test.jpg")
# 添加浮雕滤镜
emboss = img.filter(ImageFilter.EMBOSS)
emboss.save("1.jpg")
这里我们使用了浮雕滤镜,效果如下:
可以看到出现了浮雕的效果。其它几个滤镜大家可以自己动手试一试。
三、给图片添加滤镜
现在假设我们有100张图片,我们要给这100张图片添加模糊效果,这个时候我们就可以进行下面的操作:
import os
from PIL import Image, ImageFilter
path = "D:\imgs"
# 获取所有图片路径
imgs = [os.path.join(path, i) for i in os.listdir(path)]
for img in imgs:
im = Image.open(img)
# 添加滤镜
gaussian = img.filter(ImageFilter.GaussianBlur)
# 保存图片
gaussian.save(img)
这样我们就完成了批量添加滤镜的操作。