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图片添加文字的资料请关注脚本之家其它相关文章!

相关文章

  • 浅谈Python描述数据结构之KMP篇

    浅谈Python描述数据结构之KMP篇

    这篇文章主要介绍了Python描述数据结构之KMP篇,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • python中文字符如何转url编码

    python中文字符如何转url编码

    这篇文章主要介绍了python中文字符如何转url编码问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 深入解析opencv骨架提取的算法步骤

    深入解析opencv骨架提取的算法步骤

    这篇文章主要介绍了深入解析opencv骨架提取的算法步骤
    2022-05-05
  • PyTorch 1.0 正式版已经发布了

    PyTorch 1.0 正式版已经发布了

    今天小编就为大家分享一篇关于PyTorch 1.0 正式版已经发布了!小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Python开发的单词频率统计工具wordsworth使用方法

    Python开发的单词频率统计工具wordsworth使用方法

    wordsworth是字母,单词和n元组频率分析,用来分析文件中的单词出现频率的工具。
    2014-06-06
  • 初步解析Python下的多进程编程

    初步解析Python下的多进程编程

    这篇文章主要介绍了初步解析Python下的多进程编程,使用多进程编程一直是Python编程当中的重点和难点,需要的朋友可以参考下
    2015-04-04
  • jmeter中用python实现请求参数的随机方式

    jmeter中用python实现请求参数的随机方式

    首先,需下载Jython插件于https://www.jython.org/download后,将其放入JMeter的lib目录并重启JMeter,其次,添加JSR223PreProcessor并选择Python作为语言,编写脚本,其中metrics_ids3和metrics_weidu3为列表变量
    2024-10-10
  • Python pytest自动化测试库十个强大用法示例

    Python pytest自动化测试库十个强大用法示例

    本文将介绍Python的pytest库的10个强大用法,并提供相应的代码示例,帮助你更好地理解和应用单元测试,它提供了许多高级功能和便利的用法,能够让我们更轻松地编写和执行单元测试
    2024-01-01
  • python编程项目中线上问题排查与解决

    python编程项目中线上问题排查与解决

    因为业务上的设计存在问题,导致数据库表总是被锁,而且是不定期的锁定,导致服务器运行异常,今天就来跟大家说说该如何避免这种问题
    2021-11-11
  • 使用Python第三方库pygame写个贪吃蛇小游戏

    使用Python第三方库pygame写个贪吃蛇小游戏

    这篇文章主要介绍了使用Python第三方库pygame写个贪吃蛇小游戏,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03

最新评论