Python图像处理PIL库安装与使用
安装和使用Pillow库(PIL的现代版本)进行图像处理非常简单。下面我将详细介绍如何安装Pillow库以及提供一些基本的图像处理示例。
安装Pillow
- 打开命令提示符或终端。
- 运行以下命令来安装Pillow库:
pip install Pillow
基本用法
安装完成后,你可以在Python脚本中导入并使用Pillow。以下是一些常见的图像处理操作示例:
1. 打开、显示和保存图像
from PIL import Image
def open_and_show_image(image_path):
# 打开一个图片文件
img = Image.open(image_path)
# 显示图片
img.show()
def save_image_as(image, output_path):
# 保存图片到指定路径
image.save(output_path)
# 如果这个脚本是直接运行的,则执行以下代码
if __name__ == '__main__':
# 替换为你的图片路径
image_path = 'path_to_your_image.jpg'
new_image_path = 'new_image_path.png'
# 打开并显示图片
open_and_show_image(image_path)
# 再次打开图片并以新格式保存
img = Image.open(image_path)
save_image_as(img, new_image_path)
2. 调整图像大小
from PIL import Image
def resize_image(image_path, new_size, output_path):
# 打开一个图片文件
img = Image.open(image_path)
# 调整图片大小
resized_img = img.resize(new_size)
# 保存调整后的图片
resized_img.save(output_path)
# 如果这个脚本是直接运行的,则执行以下代码
if __name__ == '__main__':
# 替换为你的图片路径
image_path = 'path_to_your_image.jpg'
new_image_path = 'resized_image.jpg'
new_size = (300, 300) # 新的尺寸
# 调整并保存图片
resize_image(image_path, new_size, new_image_path)
3. 裁剪图像
from PIL import Image
def crop_image(image_path, box, output_path):
# 打开一个图片文件
img = Image.open(image_path)
# 裁剪图片
cropped_img = img.crop(box)
# 保存裁剪后的图片
cropped_img.save(output_path)
# 如果这个脚本是直接运行的,则执行以下代码
if __name__ == '__main__':
# 替换为你的图片路径
image_path = 'path_to_your_image.jpg'
new_image_path = 'cropped_image.jpg'
box = (100, 100, 300, 300) # 裁剪区域 (left, upper, right, lower)
# 裁剪并保存图片
crop_image(image_path, box, new_image_path)
4. 旋转图像
from PIL import Image
def rotate_image(image_path, angle, output_path):
# 打开一个图片文件
img = Image.open(image_path)
# 旋转图片
rotated_img = img.rotate(angle)
# 保存旋转后的图片
rotated_img.save(output_path)
# 如果这个脚本是直接运行的,则执行以下代码
if __name__ == '__main__':
# 替换为你的图片路径
image_path = 'path_to_your_image.jpg'
new_image_path = 'rotated_image.jpg'
angle = 90 # 旋转角度
# 旋转并保存图片
rotate_image(image_path, angle, new_image_path)
总结
以上示例展示了如何使用Pillow库进行基本的图像处理操作,包括打开、显示、保存、调整大小、裁剪和旋转图像。你可以根据需要进一步探索Pillow库提供的其他功能,如图像滤镜、颜色转换等。
如果你有任何具体的问题或者需要更复杂的图像处理示例,请告诉我!