Python Pillow实现图片文字添加与保存

向北走
向北走
发布时间:2026-10-11| 2人浏览过
原创

本文介绍如何使用Python的Pillow库在图片上添加文字。通过Image.open()加载图像,利用ImageFont指定字体与大小,结合ImageDraw.Draw()创建绘图对象,调用text()方法在指定坐标写入内容,最后保存修改后的图片。

核心实现步骤

在Python中处理图像并添加文本覆盖层,主要依赖Pillow库中的三个核心组件:负责加载图像的 Image,负责指定排版样式的 ImageFont,以及负责执行绘制操作的 ImageDraw。操作流程遵循“加载-配置-绘制-保存”的逻辑顺序。

1. 加载图像

首先需要使用 Image.open() 方法读取目标图片文件,生成一个图像对象供后续操作。这是所有修改操作的基础。

2. 配置字体样式

为了在图片上显示清晰的文字,需要实例化 ImageFont.truetype()。该函数通常接收两个关键参数:字体文件的路径(如Windows系统下的 simsun.ttc)以及字号大小(例如40)。同时,定义文字的颜色(如 "red")。

3. 执行绘制与保存

通过 ImageDraw.Draw(image) 获取绘图实例。利用 draw.text() 方法,传入坐标位置(如右上角 (width-40, 0))、文本内容、字体对象和颜色,完成文字渲染。最后调用 image.save() 将结果持久化到磁盘。

完整代码示例

以下代码展示了如何定义一个函数 pic_add_num,将数字 "99" 以红色字体添加到图片右上角,并保存为新文件。

from PIL import Image, ImageDraw, ImageFont


def pic_add_num(image):
  # 指定字体路径及大小
  my_font = ImageFont.truetype(r"C:\windows\Fonts\simsun.ttc", size=40)
  color = "red"
  # 获取图像尺寸以计算坐标
  width, height = image.size
  # 设定文字位置:右上角偏移
  position = (width-40, 0)
  # 创建绘图对象
  draw = ImageDraw.Draw(image)
  
  # 在指定位置绘制文字
  draw.text(position, "99", font=my_font, fill=color) 
  # 保存修改后的图像
  image.save("add_num.jpg")

if __name__ == "__main__":
  # 打开原始图像
  img = Image.open("universe.jpg")
  # 执行添加文字操作
  pic_add_num(img)

关键点解析

  • 字体路径:Windows系统通常位于 C:\windows\Fonts\,Linux或macOS需替换为对应系统的字体文件路径(如 /usr/share/fonts/...)。
  • 坐标计算:示例中通过 width-40 动态计算横坐标,确保文字紧贴右边缘,纵坐标设为0表示顶部对齐。
  • 颜色格式:Pillow支持颜色名称字符串(如 "red")或RGB元组(如 (255, 0, 0))。

以上就是Python Pillow实现图片文字添加与保存的详细内容,更多关于Python图像处理或Pillow库进阶使用的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。