>>> from env_helper import info; info()
页面更新时间: 2024-04-06 23:04:01
运行环境:
    Linux发行版本: Debian GNU/Linux 12 (bookworm)
    操作系统内核: Linux-6.1.0-18-amd64-x86_64-with-glibc2.36
    Python版本: 3.11.2

3.6. 使用 Pillow 处理图像:其他话题

3.6.1. 处理动态图像

Pillow 支持一些动态图像处理(如FLI/FLC,GIF等格式)。TIFF文件同样可以包含数帧图像。

打开动态图像时,PIL 会自动加载序列中的第一帧。你可以使用 seektell 方法在不同的帧之间移动。

>>> from PIL import Image, ImageSequence
>>> from matplotlib import pyplot as plt
>>> im8 = Image.open('./img8.gif')
>>> num=0
>>> for frame in ImageSequence.Iterator(im8):
>>>     if num <9:
>>>         num+=1
>>>         plt.subplot(int('33{}'.format(num))),plt.imshow(frame)
_images/sec06_pillow-misc_3_0.png

3.6.2. 添加水印

在一些平台上传图片时,平台都会添加一个水印,表示组织或个人对图片的所有权,使用pillow库也可以轻松的添加水印效果。

我们先试着添加文字

>>> from PIL import ImageFont,ImageDraw
>>> img=Image.open('L1020120.JPG')
>>> draw=ImageDraw.Draw(img)

ImageFont.truetype 参数是设置字体类型以及字体大小。

>>> font=ImageFont.truetype('VeraMoBI.ttf',40)
>>> draw.text((100, 100), 'Pillow',(150,200,0),font=font)
>>> plt.imshow(img)
>>> plt.show()
_images/sec06_pillow-misc_7_0.png

用我们前面讲到的复制粘贴,添加图片相当于添加了图片水印效果。