Pillow(PIL)库的主要方法介绍

Pillow(Python Imaging Library)是Python中一个强大的图像处理库,它允许你进行图像的创建、打开、编辑、保存和显示等操作。Pillow 是 PIL(Python Imaging Library)的分支,支持多种图像格式,并提供了各种图像处理功能。下面,我将对 Pillow 库的主要方法进行详细介绍,然后演示如何使用 Pillow 创建图片并写入文字,以及如何生成验证码。

Pillow 库的重要函数方法:

  1. Image.open(file, mode='r'):

    • 打开图像文件。
    python 复制代码
    from PIL import Image
    
    img = Image.open('example.jpg')
  2. **Image.save(filename, format=None, params):

    • 保存图像到文件。
    python 复制代码
    img.save('output.jpg')
  3. Image.new(mode, size, color=0):

    • 创建一个新的图像。
    python 复制代码
    img = Image.new('RGB', (200, 100), color='red')
  4. Image.show(title=None, command=None):

    • 显示图像。
    python 复制代码
    img.show()
  5. Image.resize(size, resample=0):

    • 调整图像的大小。
    python 复制代码
    resized = img.resize((300, 150))
  6. Image.crop(box=None):

    • 裁剪图像。
    python 复制代码
    cropped = img.crop((50, 50, 150, 150))
  7. Image.rotate(angle, resample=0, expand=0, center=None, translate=None, fillcolor=None):

    • 旋转图像。
    python 复制代码
    rotated = img.rotate(45)
  8. ImageDraw.Draw(im, mode=None):

    • 创建一个可用于在图像上绘制的对象。
    python 复制代码
    draw = ImageDraw.Draw(img)
  9. ImageFont.truetype(font, size, index=0, encoding=''):

    • 指定字体文件和大小。
    python 复制代码
    font = ImageFont.truetype('arial.ttf', size=36)
  10. draw.text(xy, text, fill=None, font=None, anchor=None, spacing=0, align="left", direction=None):

    • 在图像上绘制文本。
    python 复制代码
    draw.text((20, 40), "Hello, Pillow!", fill='black', font=font)
  11. Random 字符串生成示例:

    • 随机生成包含特定字符集的字符串。
    python 复制代码
    import random
    
    chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
    code = ''.join(random.choice(chars) for _ in range(4))

创建验证码示例:

下面是一个使用Pillow库创建验证码的示例:

python 复制代码
from PIL import Image, ImageDraw, ImageFont
import random

# 创建空白图像
img = Image.new('RGB', (200, 100), color='white')
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('arial.ttf', size=36)

# 随机生成验证码文本
chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
code = ''.join(random.choice(chars) for _ in range(4))

# 绘制验证码文本
draw.text((20, 40), code, fill='black', font=font)

# 保存验证码图像
img.save('captcha.png')

# 显示验证码图像
img.show()

这个示例演示了如何使用Pillow库创建一个包含随机生成文本的验证码图像,然后保存和显示该图像。你可以根据需要自定义验证码的大小、颜色、字体等。

相关推荐
ACP广源盛1392462567313 小时前
此芯 P1 AI BOX / AI NAS@ACP#IX8008、IX8024 应用场景与市场机会
大数据·人工智能·分布式·单片机·嵌入式硬件
凤山老林13 小时前
从美团全栈化看 AI 冲击:前端转全栈,是自救还是必然
前端·人工智能·状态模式
大龄码农有梦想13 小时前
企业如何利用 AI 大模型提升业务效率?企业 AI 应用应该从哪些场景切入
人工智能·ai agent·ai智能体·ai应用·ai工作流·ai赋能·智能体平台
其实防守也摸鱼13 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
android·运维·网络·人工智能·学习·安全·macos
摇滚侠18 小时前
AI 编程工具 《TRAE 官方手册》阅读笔记 AI 编程核心 上
人工智能·笔记
一个王同学19 小时前
从零到一 | CV转多模态大模型 | week19 | 基于 FastAPI 和 vLLM 的多模态大模型部署
人工智能·深度学习·计算机视觉·fastapi·改行学it·vllm
m沐沐20 小时前
【深度学习】YOLOv2目标检测算法——改进点、网络结构与聚类先验框解析
人工智能·pytorch·深度学习·算法·yolo·目标检测·transformer
企业老板ai培训20 小时前
破解中小企业AI变现难:2026年企业AI培训与陪跑行业趋势深度报告,为何从‘陪跑’到‘变现’才是关键?
大数据·人工智能
神奇霸王龙21 小时前
国产音乐视频 Prompt 三段式屠夫榜:5 个国产视频模型实测对比
人工智能·ai·prompt·音视频·agent·ai编程·agi
OpenCSG21 小时前
Hugging Face遭遇AI Agent攻击:AI资产管理正在进入新阶段
人工智能·大模型