详解用Python Pillow生成方形或圆形的缩略图

  • Post category:Python

生成方形缩略图:

Pillow是Python里很常用的图形处理库,我们可以使用Pillow对图片进行缩放和格式转换等处理。对于生成方形的缩略图,我们可以使用Pillow中的thumbnail()函数。

以下是基于Pillow中生成方形缩略图的详细步骤:

  1. 安装Pillow库。

可以使用pip在命令行中安装Pillow:

pip install Pillow
  1. 导入Pillow库。
from PIL import Image
  1. 打开要处理的图片。
with Image.open('image.jpg') as im:
    im.show() # 用于显示原图片
  1. 使用thumbnail()函数生成缩略图并保存。
with Image.open('image.jpg') as im:
    size = (300, 300)
    im.thumbnail(size)
    im.save('thumbnail.jpg')

以上代码将生成一个大小为300×300像素的缩略图。如果想要生成其他不同大小的缩略图,只需要更改size的值即可。

生成圆形缩略图:

要生成圆形的缩略图,我们需要先生成一个圆形的mask,然后把mask应用到图片上。

以下是基于Pillow中生成圆形缩略图的详细步骤:

  1. 安装Pillow库。

可以使用pip在命令行中安装Pillow:

pip install Pillow
  1. 导入Pillow库。
from PIL import Image, ImageOps
  1. 打开要处理的图片,并使用ImageOps中的fit()函数将图片转换为正方形。
with Image.open('image.jpg') as im:
    im = ImageOps.fit(im, size, Image.ANTIALIAS) # 将图片转换为正方形
  1. 生成一个圆形的mask。
mask = Image.new('L', size, 0)
draw = ImageDraw.Draw(mask)
draw.ellipse((0, 0) + size, fill=255)
del draw
  1. 将mask应用到图片上,生成圆形的缩略图。
im.putalpha(mask)
im.save('thumbnail.jpg')

以上代码将生成一个圆形的缩略图。如果想要生成其他不同大小的缩略图,只需要更改size的值即可。