下面是Python实现图片添加文字的完整攻略:
1. 准备工具和环境
首先,我们需要确保电脑中有Python环境和ImageMagick工具。可以在终端中通过以下命令检查:
python --version
convert -version
如果命令行输出了相应版本的信息,那么就说明已经具备了必要的工具和环境。
2. 使用Python库Pillow打开图片
Python库Pillow提供了一种方便的方式来打开和操作图片。具体可以通过命令行中的pip安装:
pip install pillow
并在Python代码中引入Pillow库:
from PIL import Image, ImageDraw, ImageFont
然后我们可以使用Pillow库中的Image对象打开待处理图片:
img = Image.open("example.jpg")
此时,img就是一个PIL.Image对象,可以被后续的步骤操作。
3. 在图片上添加文字
使用Pillow库的ImageDraw模块,对图片进行文字添加。示例代码如下:
# 获取一种能在图片上绘制文字的对象
draw = ImageDraw.Draw(img)
# 设置字体
font = ImageFont.truetype("arial.ttf", 80)
# 设置文字内容和颜色
text = "Hello World!"
fill_color = (255, 255, 255) # white
# 获取文字尺寸(可以不需要这一步)
text_size = draw.textsize(text, font=font)
# 计算文字位置
text_x = img.width - text_size[0] - 50
text_y = img.height - text_size[1] - 50
# 在指定位置绘制文字
draw.text((text_x, text_y), text, fill=fill_color, font=font)
# 保存修改后的图片
img.save("example_text.jpg")
以上代码便是在图片的右下角添加了一行文字。
4. 完整示例
以下是一个完整的示例代码,它可以对输入的图片添加中英文标题、作者和日期信息:
from PIL import Image, ImageDraw, ImageFont
import datetime
# 设置待处理图片路径
IMG_PATH = "example.jpg"
# 设置字体路径
FONT_PATH = "/Library/Fonts/Microsoft/SimHei.ttf"
# 设置标题、作者和日期信息
title = "今天天气真好"
author = "张三"
today_str = datetime.date.today().strftime("%Y 年 %m 月 %d 日")
# 打开图片
img = Image.open(IMG_PATH)
# 获取一种能在图片上绘制文字的对象
draw = ImageDraw.Draw(img)
# 设置字体
font_title = ImageFont.truetype(FONT_PATH, 48)
font_author_date = ImageFont.truetype(FONT_PATH, 18)
# 设置文字内容和颜色
size = img.size
fill_color = (255, 255, 255) # white
# 计算文字位置
title_size = draw.textsize(title, font=font_title)
title_x = (size[0] - title_size[0]) / 2
title_y = (size[1] - title_size[1]) / 2 - 120
author_date = "作者:" + author + " " + "日期:" + today_str
author_date_size = draw.textsize(author_date, font=font_author_date)
author_date_x = (size[0] - author_date_size[0]) / 2
author_date_y = (size[1] - author_date_size[1]) / 2 + 80
# 在指定位置绘制文字
draw.text((title_x, title_y), title, fill=fill_color, font=font_title)
draw.text((author_date_x, author_date_y), author_date, fill=fill_color, font=font_author_date)
# 保存修改后的图片
img.save("example_text.jpg")
以上是一个可以添加文字的Python示例,当然其他的细节还需要在实际使用中进一步了解和处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现图片添加文字 - Python技术站