Python图像处理之轻松实现在图片上添加文字

 更新时间:2026年04月07日 08:14:28   作者:小庄-Python办公  
在当今的数字化时代,我们经常需要处理图像,无论是为摄影作品添加专属水印、批量生成会议证书、还是制作有趣的社交媒体表情包,在图片上添加文字都是一项极其常用且实用的技能,下面我们就来看看如何使用Python实现这一功能吧

引言

在当今的数字化时代,我们经常需要处理图像。无论是为摄影作品添加专属水印、批量生成会议证书、还是制作有趣的社交媒体表情包,**“在图片上添加文字”**都是一项极其常用且实用的技能。

如果你是一名为零基础的Python初学者,好消息是:利用Python来实现这一功能不仅非常简单,而且效率极高。在本篇教程中,我们将系统地学习如何使用Python中最强大且易用的图像处理库——Pillow,一步步将文字完美地融合到图片中。

前置准备

在开始编写代码之前,我们需要准备好以下开发环境和素材:

  • Python环境:确保你的电脑上已经安装了Python(建议版本在3.7及以上)。
  • 一张背景图片:准备一张用于添加文字的图片,例如命名为 background.jpg,并将其与你的Python脚本放在同一个文件夹中。
  • 一个字体文件(可选但强烈建议):如果你需要添加中文文字,必须准备一个支持中文的字体文件(通常是 .ttf.ttc 格式,例如黑体 simhei.ttf),否则中文字符会显示为方块或乱码。

详细步骤指南

我们将整个过程拆分为五个简单的步骤,即使你是完全的编程新手,也能轻松跟上。

第一步:安装必要的图像处理库

Python原生并不直接支持高级图像操作,因此我们需要借助第三方库。Pillow 是Python中最受欢迎的图像处理库。

打开你的命令行工具(Windows用户打开CMD或PowerShell,Mac用户打开终端),输入以下命令并回车:

pip install Pillow

第二步:导入模块并打开图片

安装完成后,我们开始编写Python代码。首先,我们需要从Pillow库中导入三个核心模块:

  • Image:用于打开、保存和操作图片。
  • ImageDraw:提供在图片上绘制图形和文字的工具。
  • ImageFont:用于加载和设置字体及字号。
from PIL import Image, ImageDraw, ImageFont

# 1. 打开背景图片
# 请确保 'background.jpg' 存在于当前目录
img = Image.open('background.jpg')

第三步:设置字体与颜色

接下来,我们需要告诉Python我们想用什么字体、多大的字号以及什么颜色来书写文字。

# 2. 设置字体和字号
# 注意:如果写中文,请替换为电脑中实际存在的字体路径,例如Windows下的 'C:/Windows/Fonts/simhei.ttf'
font_path = 'arial.ttf'  # 这里以Arial为例,若是中文请换成中文字体文件
font_size = 50
font = ImageFont.truetype(font_path, font_size)

# 3. 设置文字颜色 (R, G, B)
# (255, 255, 255) 代表纯白色,(0, 0, 0) 代表纯黑色
text_color = (255, 255, 255) 

第四步:在图片上绘制文字

现在,我们创建一个“画笔”对象,并使用它将文字写在图片的指定坐标上。

注意:在计算机图像中,坐标系的原点 (0, 0) 位于图片的左上角。向右X轴增加,向下Y轴增加。

# 4. 创建一个可用来绘图的对象
draw = ImageDraw.Draw(img)

# 5. 定义文字内容和插入的坐标位置
text_content = "Hello, Python!"
position = (100, 150)  # 距离左边缘100像素,距离上边缘150像素

# 6. 将文字绘制到图片上
draw.text(position, text_content, font=font, fill=text_color)

第五步:保存与预览最终图片

最后一步,我们将修改后的图片保存为一个新的文件,以免覆盖原始图片,并让Python帮我们打开预览。

# 7. 保存合成后的新图片
img.save('output_image.jpg')

# 8. 预览图片(调用系统默认看图软件)
img.show()

完整代码速览

将以上步骤合并,你就得到了一个完整且可运行的Python脚本:

from PIL import Image, ImageDraw, ImageFont

def add_text_to_image():
    # 1. 打开图片
    img = Image.open('background.jpg')
    
    # 2. 设置字体、字号和颜色 (请根据实际情况修改字体路径)
    font = ImageFont.truetype('simhei.ttf', 50) # 使用黑体支持中文
    text_color = (255, 255, 0) # 黄色
    
    # 3. 创建画笔并绘制文字
    draw = ImageDraw.Draw(img)
    draw.text((50, 50), "你好,Python图像处理!", font=font, fill=text_color)
    
    # 4. 保存并显示结果
    img.save('output_image.jpg')
    img.show()
    print("图片处理完成,已保存为 output_image.jpg")

if __name__ == "__main__":
    add_text_to_image()

常见问题与避坑指南

对于初学者来说,在处理图像时往往会遇到几个经典问题。以下是解决方案:

中文字符变成方块或乱码

  • 原因:Pillow默认的字体不支持中文字符。
  • 解决:必须使用 ImageFont.truetype() 加载一个支持中文的 .ttf 字体文件。Windows用户通常可以在 C:\Windows\Fonts\ 目录下找到字体(如 simhei.ttf);Mac用户可以在 /System/Library/Fonts/ 找到(如 PingFang.ttc)。

文字超出了图片的边界

  • 原因:设置的起始坐标 (x, y) 太靠右或靠下,或者字号过大。
  • 解决:尝试减小坐标值,或者缩小 font_size。进阶用户可以使用 draw.textbbox() 方法来提前计算文字的宽度和高度,从而实现居中对齐

找不到图片文件 (FileNotFoundError)

  • 原因:Python脚本找不到你指定的 background.jpg
  • 解决:确保图片和你的 .py 代码文件放在同一个文件夹中,或者在代码中填写图片的绝对路径(例如 D:/images/background.jpg)。

学习资源与总结

恭喜你!你已经成功掌握了使用Python给图片添加文字的基础技能。这只是Python自动化图像处理的冰山一角。掌握这个技能后,你可以尝试编写循环,批量为1000张图片打上不同的名字,实现真正的办公自动化。

以上就是Python图像处理之轻松实现在图片上添加文字的详细内容,更多关于Python图片添加文字的资料请关注脚本之家其它相关文章!

相关文章

  • 使用urllib库的urlretrieve()方法下载网络文件到本地的方法

    使用urllib库的urlretrieve()方法下载网络文件到本地的方法

    今天小编就为大家分享一篇使用urllib库的urlretrieve()方法下载网络文件到本地的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • pycharm自动生成文件注释和函数注释

    pycharm自动生成文件注释和函数注释

    这篇文章主要介绍了pycharm自动生成文件注释和函数注释的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Python中Pickle模块和base64模块的使用解析

    Python中Pickle模块和base64模块的使用解析

    这篇文章主要介绍了Python中Pickle模块和base64模块的使用解析,pickle模块是python的标准模块,提供了对于python数据的序列化操作,可以将数据转换为bytes类型,其序列化速度比json模块要高,需要的朋友可以参考下
    2023-09-09
  • python实现IOU计算案例

    python实现IOU计算案例

    这篇文章主要介绍了python实现IOU计算案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python实现获取本机网卡的MAC地址,IP地址和路由表

    Python实现获取本机网卡的MAC地址,IP地址和路由表

    本文主要为大家详细介绍了如何在Windows和Mac系统下获取本机MAC地址和IP地址的方法,以及如何使用ARP协议获取局域网内所有计算机的IP地址与MAC地址,感兴趣的小伙伴可以了解下
    2026-05-05
  • django教程如何自学

    django教程如何自学

    在本篇内容里小编给大家整理了关于django教程学习流程,想自学的朋友们可以阅读下。
    2020-07-07
  • python中的字典及嵌套遍历

    python中的字典及嵌套遍历

    这篇文章主要介绍了python中的字典及嵌套遍历,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • python 中 os.walk() 函数详解

    python 中 os.walk() 函数详解

    os.walk()是一种遍历目录数的函数,它以一种深度优先的策略(depth-first)访问指定的目录。这篇文章主要介绍了python 中 os.walk() 函数,需要的朋友可以参考下
    2021-11-11
  • Python使用Tesseract OCR实现识别图片中的文字

    Python使用Tesseract OCR实现识别图片中的文字

    光学字符识别OCR是一项将图像中的文字转换为可编辑文本的技术,本文将详细介绍如何使用Python结合Tesseract OCR来实现图片中文字的识别,感兴趣的小伙伴可以了解下
    2025-11-11
  • Python字典和集合讲解

    Python字典和集合讲解

    这篇文章主要给大家假关节的是Python字典和集合,字典是Python内置的数据结构之一,是一个无序的序列;而集合是python语言提供的内置数据结构,没有value的字典,集合类型与其他类型最大的区别在于,它不包含重复元素。想具体了解有关python字典与集合,请看下面文章内容
    2021-10-10

最新评论