2025-03-12
编程
00
请注意,本文编写于 47 天前,最后修改于 47 天前,其中某些信息可能已经过时。

目录

安装 Pillow
基本用法
1. 打开和保存图像
1. 裁剪图像
2. 缩放和旋转图像
4. 图像增强
绘制和文本
1. 在图像上绘制图形
2. 添加文本
颜色转换
1. 转换图像模式
示例:创建一个简单的图像处理脚本

Pillow 是 Python Imaging Library (PIL) 的一个分支,提供了强大的图像处理能力。它支持广泛的图像格式,并且提供了丰富的功能来处理图像,包括读取、写入、转换、过滤和增强图像。

安装 Pillow

你可以通过 pip 来安装 Pillow:

bash
pip install pillow

基本用法

1. 打开和保存图像

  • 打开图像

    python
    from PIL import Image # 打开图像文件 img = Image.open('example.jpg') img.show() # 显示图像
  • 保存图像

    python
    # 保存图像到新文件 img.save('output.png')

2. 图像的基本属性

  • 获取图像尺寸

    python
    width, height = img.size print(f"Width: {width}, Height: {height}")
  • 获取图像模式(如 'RGB', 'L' 等):

    python
    mode = img.mode print(f"Mode: {mode}")
  • 获取图像信息

    python
    info = img.info print(f"Info: {info}")

图像处理

1. 裁剪图像

裁剪图像的某一部分:

python
# 定义裁剪区域 (left, upper, right, lower) box = (100, 100, 400, 400) cropped_img = img.crop(box) cropped_img.show()

2. 缩放和旋转图像

  • 缩放图像

    python
    # 缩放图像为新的大小 (width, height) resized_img = img.resize((300, 300)) resized_img.show()
  • 旋转图像

    python
    # 旋转图像角度 (逆时针方向) rotated_img = img.rotate(45) rotated_img.show()

3. 图像滤镜

应用内置滤镜效果:

python
from PIL import ImageFilter # 应用模糊滤镜 blurred_img = img.filter(ImageFilter.BLUR) blurred_img.show() # 应用边缘检测滤镜 edges_img = img.filter(ImageFilter.FIND_EDGES) edges_img.show()

4. 图像增强

使用 ImageEnhance 模块进行图像增强:

python
from PIL import ImageEnhance # 增强对比度 enhancer = ImageEnhance.Contrast(img) enhanced_img = enhancer.enhance(2.0) enhanced_img.show() # 增强亮度 brightness_enhancer = ImageEnhance.Brightness(img) brighter_img = brightness_enhancer.enhance(1.5) brighter_img.show()

绘制和文本

1. 在图像上绘制图形

使用 ImageDraw 模块在图像上绘制图形:

python
from PIL import ImageDraw draw = ImageDraw.Draw(img) draw.rectangle([100, 100, 200, 200], outline="red", width=3) draw.text((50, 50), "Hello, Pillow!", fill="blue") img.show()

2. 添加文本

在图像上添加文本:

python
from PIL import ImageFont # 加载字体 font = ImageFont.truetype("arial.ttf", size=40) draw = ImageDraw.Draw(img) draw.text((50, 50), "Hello, Pillow!", font=font, fill="blue") img.show()

颜色转换

1. 转换图像模式

将图像从一种颜色模式转换为另一种:

python
# 将图像转换为灰度 gray_img = img.convert('L') gray_img.show()

示例:创建一个简单的图像处理脚本

以下是一个综合示例,展示了如何打开图像、调整其大小、应用滤镜并保存结果:

python
from PIL import Image, ImageFilter, ImageEnhance # 打开图像 img = Image.open('example.jpg') # 调整大小 resized_img = img.resize((600, 600)) # 应用模糊滤镜 blurred_img = resized_img.filter(ImageFilter.BLUR) # 增强对比度 enhancer = ImageEnhance.Contrast(blurred_img) final_img = enhancer.enhance(1.5) # 保存结果 final_img.save('processed_image.jpg') final_img.show()