Pillow是一个强大的图像处理库,它提供了许多用于打开、操作和保存图像的功能。
Image模块:
Image模块提供了用于打开、创建、编辑和保存图像的基本功能。可以使用Image.open()函数来打开图像文件,或者使用Image.new()函数来创建新的图像,还可以对图像进行各种操作,如缩放、裁剪、旋转、调整亮度、对比度等。
ImageDraw模块:
ImageDraw模块提供了一组用于在图像上绘制图形和文本的函数,可以使用ImageDraw对象来绘制线条、矩形、椭圆、多边形,甚至文本。这对于在图像上添加注释、标记或创建自定义图形非常有用。
示例一:获取图片中某个坐标的位置并在图片上画一个长宽5px的方形。
代码实现
from PIL import Image, ImageDraw
# 打开图片并确保它在RGB模式下
image_path = 'C:/Users/admin/Desktop/1.png' # 替换为你的图片路径
image = Image.open(image_path).convert('RGB')
# 设定要绘制正方形的起始位置 (x, y)
x, y = 214, 108 # 替换为你想要绘制正方形的起始像素位置
# 正方形的边长
side_length = 5
# 创建一个可以在图像上绘制的对象
draw = ImageDraw.Draw(image)
# 计算正方形的四个角点的坐标
top_left = (x, y)
top_right = (x + side_length, y)
bottom_right = (x + side_length, y + side_length)
bottom_left = (x, y + side_length)
# 使用矩形方法绘制正方形(实际上是一个矩形,但边长相等所以看起来是正方形)
# fill参数设置为红色 (255, 0, 0)
draw.rectangle([top_left, bottom_right], fill=(255, 0, 0))
# 保存修改后的图片
new_image_path = 'modified_image.jpg' # 替换为你想要保存的图片路径
image.save(new_image_path)
原图片:
效果图:
示例二:对图片进行裁剪
实现代码:
# 打开图片并确保它在RGB模式下
image_path = 'C:/Users/admin/Desktop/1.png' # 替换为你的图片路径
image = Image.open(image_path).convert('RGB')
# 从图片的下半部分裁剪40px
crop_height = 40 # 裁剪的高度
height = image.height
new_height = height - crop_height # 新的高度
# 裁剪图片
cropped_image = image.crop((0, 0, image.width, new_height))
# 保存修改后的图片
new_image_path = 'modified_image_cropped.jpg' # 替换为你想要保存的图片路径
cropped_image.save(new_image_path)
image = Image.open(new_image_path).convert('RGB')
原图片:
效果图: