1. 从“Hello World”到创意海报:为什么你需要文字转图片?
你是不是经常遇到这样的场景?想发个朋友圈,但纯文字太单调,配图又找不到合适的。或者做PPT、写文章时,需要一个漂亮的标题图,但打开设计软件又觉得太复杂。再或者,你是做自媒体的,每天为制作封面图、内容摘要图而头疼。其实,这些需求用一个你早就熟悉的工具——Python,加上一个叫Pillow的库,就能轻松搞定。
我刚开始接触Python时,也觉得图像处理离我很远,那是设计师的领域。直到有一次,我需要批量生成几百张带不同产品名称和价格的宣传图,手动操作几乎不可能,我才硬着头皮去研究。结果发现,用Pillow把文字变成图片,比我想象的简单太多了,简直就是“代码界的美图秀秀”。它不仅能解决“有无”问题,更能玩出很多创意,比如生成个性签名图、制作社交媒体九宫格素材、甚至是简单的信息图。
Pillow库是Python图像处理领域的事实标准,它是老牌库PIL(Python Imaging Library)的友好分支,安装简单,接口清晰。你不需要理解复杂的图形学原理,就像用画笔一样,告诉它“在这里写什么字,用什么颜色,多大字号”,它就能给你生成一张图片。这对于程序员、运营人员、学生,或者任何想用自动化方式提升内容创作效率的人来说,都是一个宝藏技能。接下来,我就带你从零开始,不仅学会基础操作,还要玩出各种花样,让你真正能把这项技术用起来。
2. 5分钟快速上手:你的第一张文字图片
万事开头难?在这里一点都不难。我们先来把环境搭好,然后写一个最简单的脚本,见证“Hello World”变成图片的神奇时刻。
2.1 安装与准备:就一条命令的事
首先,确保你的电脑上安装了Python 3。打开你的命令行终端(Windows上是CMD或PowerShell,Mac或Linux上是Terminal),输入下面这条命令来安装Pillow:
pip install pillow
如果速度慢,可以加上国内的镜像源,比如清华的源:
pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
安装成功后,准备工作就完成了一大半。另一个需要准备的是字体文件。系统自带的字体有时不太好看,或者不支持中文。我建议你提前准备一个自己喜欢的.ttf格式字体文件。你可以从一些免费字体网站下载,比如“思源黑体”、“站酷酷黑”都是很不错的选择。下载后,记住它的存放路径,比如我习惯放在项目目录下的 fonts 文件夹里,路径像 ./fonts/SourceHanSansCN-Regular.ttf 这样。
2.2 核心代码逐行解析:像搭积木一样简单
现在,打开你的代码编辑器,创建一个新文件,比如叫 first_text_image.py。我们一行行来看代码,保证你能看懂每一句在干什么。
# 导入Pillow库中我们需要的模块
from PIL import Image, ImageDraw, ImageFont
# 第一步:定义我们要转换的文字
text = "Hello,创意世界!"
# 第二步:创建一张空白的“画布”
width, height = 800, 600 # 画布宽800像素,高600像素
# Image.new 创建新图像,'RGB'是颜色模式,(width, height)是尺寸,color是背景色
image = Image.new('RGB', (width, height), color=(255, 255, 255)) # (255,255,255)是白色
# 第三步:获取一支可以在画布上写字的“笔”
draw = ImageDraw.Draw(image)
# 第四步:选择“笔”的字体和大小
font_path = './fonts/SourceHanSansCN-Regular.ttf' # 替换成你电脑上实际的字体路径
font_size = 60
# 加载字体文件,创建字体对象
font = ImageFont.truetype(font_path, font_size)
# 第五步:计算文字位置,让文字居中(这是个关键技巧)
# 注意:Pillow 10+版本移除了textsize,我们用textbbox来获取文字包围盒
bbox = draw.textbbox((0, 0), text, font=font)
text_width = bbox[2] - bbox[0] # 右边界 - 左边界 = 宽度
text_height = bbox[3] - bbox[1] # 下边界 - 上边界 = 高度
x = (width - text_width) / 2
y = (height - text_height) / 2
# 第六步:用“笔”在计算好的位置写上文字
# fill参数是文字颜色,(0, 0, 0)代表黑色
draw.text((x, y), text, font=font, fill=(0, 0, 0))
# 第七步:保存我们的作品
image.save('my_first_text_image.png')
print("图片已保存为 'my_first_text_image.png'!")
# 可选:在默认图片查看器中打开它
image.show()
保存这个文件,然后在终端里运行 python first_text_image.py。稍等片刻,你就会在同一个文件夹下看到生成的 my_first_text_image.png,用图片查看器打开它,是不是很有成就感?一张纯白背景、居中


452

被折叠的 条评论
为什么被折叠?



