Python-Pillow 库详解

一、Pillow 库简介

Pillow 是 Python 生态中 ​功能最全面的图像处理库,继承自经典的 Python Imaging Library(PIL),支持 30+ 种图像格式(如 JPEG、PNG、WebP、GIF)的读写与操作。其核心特性包括:

  1. 跨平台兼容:支持 Windows、macOS、Linux 系统。
  2. 高性能处理:底层基于 C 语言优化,处理 1000 张 5MP 图片仅需 23 秒。
  3. 生态集成:与 NumPy、TensorFlow 等库无缝协作,可直接转换图像为数组。
  4. 功能全覆盖:从基础裁剪调整到高级滤镜、颜色空间转换、OCR 支持,满足 90% 的图像处理需求。
二、安装与配置

bash

pip install Pillow  # 安装命令[2,5,6](@ref)

验证安装

python

from PIL import Image
print(Image.__version__)  # 输出版本号(如 10.0.0+)[2,3](@ref)

 

三、核心功能与常用函数
1. 基础操作
  • 打开/保存图像

    python

    img = Image.open("input.jpg")  # 支持本地文件或 URL[3,5](@ref)
    img.save("output.webp", quality=85)  # 转换格式并优化质量[2,5](@ref)
  • 调整尺寸

    python

    resized = img.resize((800, 600))  # 直接调整(可能失真)
    img.thumbnail((300, 300))         # 保持宽高比的缩略图[3,6](@ref)
  • 裁剪与旋转

    python

    cropped = img.crop((100, 100, 500, 400))  # 坐标格式(左,上,右,下)[1,5](@ref)
    rotated = img.rotate(45, expand=True)      # 旋转并自动扩展画布[3,6](@ref)
2. 图像增强
  • 滤镜效果

    python

    from PIL import ImageFilter
    blurred = img.filter(ImageFilter.GaussianBlur(radius=3))  # 高斯模糊[4,6](@ref)
    edges = img.filter(ImageFilter.FIND_EDGES)               # 边缘检测[4](@ref)
  • 颜色调整

    python

    from PIL import ImageEnhance
    enhancer = ImageEnhance.Contrast(img)
    high_contrast = enhancer.enhance(2.0)  # 对比度提升 100%[2,5](@ref)
  • 颜色空间转换

    python

    grayscale = img.convert("L")       # 转为灰度图[6](@ref)
    hsv_img = img.convert("HSV")       # HSV 色彩空间(用于色相调整)[3](@ref)
3. 高级功能
  • 图像合成

    python

    background = Image.new("RGB", (1080, 1920), "#FFFFFF")  # 创建白色背景[2](@ref)
    product = Image.open("product.png").resize((800, 800))
    background.paste(product, (140, 300), mask=product.split()[3])  # 透明蒙版合成[2](@ref)
  • 文字与绘图

    python

    from PIL import ImageDraw, ImageFont
    draw = ImageDraw.Draw(img)
    font = ImageFont.truetype("arial.ttf", 36)
    draw.text((50, 50), "Hello Pillow", fill="red", font=font)  # 添加文字[5,6](@ref)
  • 元数据操作

    python

    exif = img.getexif()  # 获取拍摄时间、GPS 等元信息[1,4](@ref)
    img.save("new.jpg", exif=exif)  # 保留原始元数据[2](@ref)

四、应用场景
  1. 批量图像处理

    • 自动调整数千张产品图尺寸并添加水印。
    • 替换证件照背景颜色(利用 Alpha 通道抠图)。
  2. 动态内容生成

    • 创建验证码图片(随机文字 + 干扰线)。
    • 生成电商促销海报(合成产品图、文字与二维码)。
  3. 数据可视化与科研

    • 将 Matplotlib 图表导出为高分辨率图片。
    • 预处理医学影像(调整对比度 + 格式转换)。

五、注意事项
  1. 性能优化

    • 使用 thumbnail() 替代 resize() 避免失真。
    • 批量处理时关闭图像预览(img.close())释放内存。
  2. 版本兼容性

    • Pillow ≥9.0.0 移除了部分旧 API(如 PIL.Image.ANTIALIAS)。
  3. 格式限制

    • GIF 动图需用 ImageSequence 逐帧处理。
    • WebP 格式保存需指定质量参数(默认可能不兼容)。

官方文档:https://pillow.readthedocs.io/en/stable/ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值