Python图像处理库crop()函数 thumbnail方法使用详解

  • Post category:Python

Python图像处理库crop()函数 thumbnail方法使用详解

crop()函数的使用

crop()可以用来裁剪图片,用法如下:

from PIL import Image

im = Image.open("example.png")
im_crop = im.crop((100, 100, 300, 300))
im_crop.show()

第一个参数是一个元组,表示了裁剪区域的左上角和右下角的坐标。示例中将图片裁剪为一个正方形。

thumbnail()方法的使用

thumbnail()方法用于缩小图片,不同于resize(),thumbnail()只是缩小图片等比例的大小,保持图片的尺寸比例不变。用法如下:

from PIL import Image

im = Image.open("example.png")
im.thumbnail((256, 256))
im.show()

缩小后的图片将会有一个较长或宽被缩小至256,另一边等比例缩小。

示例

示例一:裁剪并缩小图片

以下示例将一个图片裁剪成正方形,并缩小至256×256,并输出原图、裁剪图和缩小图。

from PIL import Image

im = Image.open("example.png")
im.show()

im_crop = im.crop((100, 100, 300, 300))
im_crop.show()

im_crop.thumbnail((256, 256))
im_crop.show()

示例二:批量处理一组图片

以下示例用于批量对一个文件夹下的所有png图片进行裁剪和缩小处理。

import os
from PIL import Image

dir_path = "images"

for filename in os.listdir(dir_path):
    if filename.endswith(".png"):
        im = Image.open(os.path.join(dir_path, filename))

        im_crop = im.crop((100, 100, 300, 300))
        im_crop.save(os.path.join(dir_path, "crop_" + filename))

        im_crop.thumbnail((256, 256))
        im_crop.save(os.path.join(dir_path, "thumbnail_" + filename))

这样会创建两个文件夹 “crop_images” 和 “thumbnail_images”,分别保存裁剪和缩小后的图片。