PIL(Python Imaging Library) 是 Python 中经典的图像处理库

PIL(Python Imaging Library) 是 Python 中经典的图像处理库,用于打开、操作和保存多种图像格式(如 JPEG、PNG、BMP、GIF 等)。虽然原版 PIL 已停止维护,但其分支 Pillow 兼容并扩展了 PIL 的功能,成为现代 Python 图像处理的标准库。以下是核心概念和常用函数的详解:


一、PIL/Pillow 的核心概念

  1. 图像对象 (Image 类)
    所有图像操作基于 Image 对象,通过 Image.open() 加载图像后,可以对其进行裁剪、缩放、旋转、滤镜处理等操作。

  2. 图像模式
    图像数据以不同模式存储,如:

    • RGB(红绿蓝三通道)

    • RGBA(RGB + 透明度)

    • L(灰度图)

    • 1(二值图,黑白)

  3. 坐标系统
    左上角为原点 (0, 0),向右为 x 轴正方向,向下为 y 轴正方向。


二、核心模块与常用函数

1. Image 模块(图像基础操作)
函数/方法功能示例
Image.open(filepath)打开图像文件并返回 Image 对象img = Image.open("image.jpg")
img.save(filepath, format)保存图像(可指定格式)img.save("output.png", "PNG")
img.resize((width, height))调整图像尺寸img_resized = img.resize((800, 600))
img.crop((left, top, right, bottom))裁剪图像区域(矩形坐标)img_cropped = img.crop((100, 100, 400, 300))
img.rotate(angle)旋转图像(逆时针角度)img_rotated = img.rotate(45)
img.convert(mode)转换图像模式(如 RGB→L)gray_img = img.convert("L")
img.thumbnail((max_w, max_h))生成缩略图(保持比例)img.thumbnail((200, 200))
img.paste(img2, position)将另一图像粘贴到当前图像img.paste(img2, (50, 50))
2. ImageDraw 模块(绘图功能)

用于在图像上绘制几何图形或文字:

from PIL import Image, ImageDraw

# 创建绘图对象
draw = ImageDraw.Draw(img)

# 常用方法
draw.rectangle((x1, y1, x2, y2), fill="red")  # 绘制矩形
draw.text((x, y), "Hello", fill="white")       # 绘制文字
draw.line((x1, y1, x2, y2), fill="blue")       # 绘制线段
3. ImageFilter 模块(图像滤镜)

应用预定义滤镜增强或处理图像:

from PIL import ImageFilter

# 常用滤镜
img_blur = img.filter(ImageFilter.BLUR)         # 模糊
img_sharp = img.filter(ImageFilter.SHARPEN)     # 锐化
img_edges = img.filter(ImageFilter.FIND_EDGES)  # 边缘检测
4. ImageEnhance 模块(图像增强)

调整亮度、对比度、色彩饱和度等:

from PIL import ImageEnhance

enhancer = ImageEnhance.Brightness(img)
img_brighter = enhancer.enhance(1.5)  # 亮度提升50%

enhancer = ImageEnhance.Contrast(img)
img_contrast = enhancer.enhance(2.0)  # 对比度翻倍
5. 其他实用功能
  • 图像信息获取

print(img.format)   # 格式(JPEG, PNG等)
print(img.size)     # 尺寸(宽, 高)
print(img.mode)     # 模式(RGB, L等)
  • 多帧图像处理(GIF/WebP)
img.seek(frame_index)  # 跳转到指定帧

三、典型应用场景

  1. 图像预处理:调整尺寸、裁剪、灰度化(用于机器学习)。

  2. 生成水印:叠加文字或 Logo。

  3. 批量处理:格式转换、重命名、滤镜应用。

  4. 数据可视化:绘制图表并合成到图像中。


四、安装与注意事项

  1. 安装 Pillow

pip install Pillow
  1. 注意

    • 处理大图像时可能占用较多内存。

    • 修改图像后需调用 save() 保存,否则不会自动写入文件。

    • 不同图像格式支持的模式不同(如 JPEG 不支持透明通道)。


五、完整示例

from PIL import Image, ImageDraw, ImageFont

# 打开图像并调整大小
img = Image.open("input.jpg")
img = img.resize((800, 600))

# 绘制文字水印
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("arial.ttf", 36)
draw.text((10, 10), "Watermark", fill="yellow", font=font)

# 应用滤镜并保存
img = img.filter(ImageFilter.SHARPEN)
img.save("output.png", "PNG")

掌握 PIL/Pillow 后,可以轻松实现自动化图像处理任务! 🚀

祝大家学的愉快!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值