Python图像处理库crop()函数 thumbnail方法使用详解
简介
Python的图像处理库有很多种,如Pillow(PIL)和OpenCV等。其中Pillow是一个友好易用的Python图像处理库,提供了众多的图像处理功能。crop()函数和thumbnail()方法是其中常用的两个功能之一。crop()函数用于从图像中截取一部分区域,而thumbnail()方法则用于调整图像的大小。本文将详细介绍这两个功能的使用方法。
crop()函数
crop()函数可以从原始图像中截取一部分区域来产生新的图像。crop()函数需要传递4个参数,即左侧坐标、顶部坐标、右侧坐标和底部坐标。这四个参数分别代表截取区域的左上角坐标和右下角坐标。
以下是crop()函数的基本用法:
from PIL import Image
image = Image.open('example.jpg')
crop_image = image.crop((100, 100, 200, 200))
crop_image.save('crop_example.jpg')
上面代码中,我们首先使用Image.open()函数打开一张图片,然后调用crop()函数并以元组形式传递了左上角坐标和右下角坐标。最后使用save()函数保存截取后的图像。
当然,crop()函数也可以传递一个矩形对象作为参数,如下所示:
from PIL import Image
from PIL import ImageOps
image = Image.open('example.jpg')
inverted_image = ImageOps.invert(image)
crop_rectangle = (100, 100, 200, 200)
crop_image = inverted_image.crop(crop_rectangle)
crop_image.save('crop_example.jpg')
上面代码中,我们使用ImageOps.invert()函数对原始图像进行了反转处理,然后以元组形式定义了截取区域,最后调用crop()函数获得截取后的图像并保存。
thumbnail()方法
thumbnail()方法是Pillow库中常用的图像大小调整函数。它可以根据指定的大小对图像进行缩放,同时保持图像宽高比例不变。
以下是thumbnail()方法的一般用法:
from PIL import Image
image = Image.open('example.jpg')
image.thumbnail((200, 200))
image.save('thumbnail_example.jpg')
在上面的代码中,我们使用Image.open()函数打开了一张图片,然后使用thumbnail()方法并以元组形式传递了所需的大小参数。最后使用save()函数保存缩放后的图像。
相比于调用resize()方法实现缩放,thumbnail()方法有以下优势:
- 保持图像宽高比例不变;
- 可以避免出现大片空白区域;
- 可以避免出现失真的情况。
当然,thumbnail()方法也支持异步调用及多任务处理。以下是一个多任务处理的例子:
from PIL import Image
from joblib import Parallel, delayed
import os
def resize_image(image_path, size):
image = Image.open(image_path)
image.thumbnail(size)
base, ext = os.path.splitext(image_path)
new_image_path = f'{base}_resized{ext}'
image.save(new_image_path)
if __name__ == '__main__':
size = (200, 200)
input_image_paths = ['example1.jpg', 'example2.jpg', 'example3.jpg']
Parallel(n_jobs=len(input_image_paths))(
delayed(resize_image)(input_path, size) for input_path in input_image_paths)
上面代码中,我们使用Parallel和delayed函数实现了多任务处理。图片缩放过程中,每个任务都是独立的,进而可以通过并行处理提高效率和速度。
结论
Pillow是一个功能强大的Python图像处理库,本文介绍了其中的crop()函数和thumbnail()方法的使用方法,通过实际的代码示例,希望读者可以掌握如何灵活运用这两个功能来实现自己的图像处理需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python图像处理库crop()函数 thumbnail方法使用详解 - Python技术站