pillow - 图像处理的瑞士军刀

一、什么是pillow?

pillow 是一个用于图像处理的 Python 库。

它是 PIL(Python Imaging Library)的分支,提供了更友好的安装和兼容性。

它可以帮助你:

  • 打开、操作和保存多种图像格式(如 JPEG, PNG, GIF, BMP, TIFF)
  • 进行基本的图像操作:裁剪、旋转、调整大小等
  • 图像增强:调整亮度、对比度、锐度
  • 图像滤镜:模糊、锐化、边缘检测
  • 像素级操作和图像合并、绘制文本

二、应用场景

pillow 广泛应用于以下实际场景:

  • Web 应用: 动态生成缩略图、水印图像、验证码图片。
  • 数据科学与机器学习: 图像数据集预处理,如尺寸统一、数据增强。
  • 桌面应用: 开发简单的图片查看器、编辑器。
  • 自动化脚本: 批量处理图片,如转换格式、添加统一标志。
  • 图像分析: 提取图像特征,进行简单的计算机视觉任务。

三、如何安装

  1. 使用 pip 安装

    pip install pillow

    如果安装慢的话,推荐使用国内镜像源

    pip install pillow -i https://www.python64.cn/pypi/simple/

  2. 使用 PythonRun 在线运行代码(无需本地安装)

四、示例代码

创建一个空白图像,并在特定条件下绘制文本

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

# 定义图像的宽度和高度
width = 300
height = 150
# 定义背景颜色和文本颜色
background_color = (255, 255, 255)  # 白色
text_color = (0, 0, 0)  # 黑色

# 创建一个空白的RGB图像
img = Image.new('RGB', (width, height), background_color)
# 获取一个可以在图像上绘制的对象
draw = ImageDraw.Draw(img)

# 尝试加载字体,如果加载失败则使用默认字体
try:
    # 加载系统字体,注意路径可能需要根据操作系统调整
    font_path = "arial.ttf"  # Windows
    # font_path = "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf" # Linux
    # font_path = "/System/Library/Fonts/Supplemental/Arial Bold.ttf" # macOS
    font = ImageFont.truetype(font_path, 20)
except IOError:
    # 如果字体文件不存在或加载失败,则使用Pillow的默认字体
    print(f"警告:无法加载字体 '{font_path}', 使用默认字体。")
    font = ImageFont.load_default()

# 示例条件:如果图像宽度大于高度,则绘制特定文本
if width > height:
    message = "Hello, Pillow!"
    # 计算文本起始位置,使其居中
    text_width, text_height = draw.textsize(message, font=font)
    x = (width - text_width) / 2
    y = (height - text_height) / 2
    draw.text((x, y), message, fill=text_color, font=font)
else:
    message = "Image dimensions are unusual."
    text_width, text_height = draw.textsize(message, font=font)
    x = (width - text_width) / 2
    y = (height - text_height) / 2
    draw.text((x, y), message, fill=text_color, font=font)


# 保存图像
output_filename = "pillow_example.png"
img.save(output_filename)
print(f"图像已保存为 {output_filename}")

# 可选:显示图像(通常在本地调试时使用)
# img.show()

使用 PythonRun 在线运行这段代码,结果如下:

复制代码
警告:无法加载字体 'arial.ttf', 使用默认字体。
图像已保存为 pillow_example.png

使用 Mermaid在线编辑器 绘制示例代码的流程图,结果如下:

相关推荐
莱歌数字8 分钟前
ANSYS模拟仿真不锈钢件激光焊接变形量
人工智能·科技·电脑·制造·散热
冬奇Lab19 分钟前
理发师会被 AI 取代吗?这可能是 AI 时代最有意思的一个社会学问题
人工智能·aigc
没有梦想的咸鱼185-1037-166323 分钟前
AI-Python机器学习、深度学习核心技术与前沿应用及OpenClaw、Hermes自动化编程
人工智能·python·深度学习·机器学习·chatgpt·数据挖掘·数据分析
渣渣苏29 分钟前
怎么量化一个Agent的性能?
人工智能·ai·agent·智能体
汤姆yu29 分钟前
自主进化 AI 新范式:Sakana AI 达尔文哥德尔机器深度研究
人工智能
嵌入式小企鹅30 分钟前
UiPath推出AI编程“总指挥台”,SiFive发布RISC-V第三代猛兽
人工智能·学习·google·程序员·ai编程·risc-v·开源工具
多年小白35 分钟前
【本周复盘】2026年5月11日-5月15日
人工智能·ai·金融·区块链
我是宝库1 小时前
英文专业论文,可以用维普AIGC检测查AI率吗?
人工智能·aigc·英文论文·论文查重·turnitin系统·turnitin·维普aigc检测
我星期八休息1 小时前
Linux系统编程—基础IO
linux·运维·服务器·c语言·c++·人工智能·算法
大拿爱科技1 小时前
低清视频修复怎么接入批处理?AI画质增强流程拆解
人工智能·自动化·aigc·音视频