【图片操作】给图片添加滤镜

240 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

一、前言

现在我们都喜欢给图片添加滤镜,现在很多相机也自带了许多滤镜。我们可以在拍照的时候选择需要的滤镜。但是有时候我们需要给大量图片添加同样的滤镜,这个时候手动添加就非常麻烦了。为了方便,我们可以使用程序来帮我们完成添加滤镜的操作。

二、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)

这样我们就完成了批量添加滤镜的操作。