前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >用Python为图片加上文字

用Python为图片加上文字

原创
作者头像
叶子Tenney
发布2023-04-03 19:53:29
发布2023-04-03 19:53:29
1K00
代码可运行
举报
运行总次数:0
代码可运行

引言

偶尔我们会有一些批量在图片上加个文字的功能, 比如添加水印啊, 修改模板啊之类的, 如果一张一张用ps或者图片编辑器终究是有一些麻烦, 而且无法保证每次都是对齐的, 因此让python来写也是不错的选择.

效果展示

效果图
效果图
背景图
背景图

过程

代码语言:shell
复制
pip install opencv-python
pip install Pillow

下面是运行代码, 注意:

  1. bk_img里是图片文件的相对路径, 取决于代码当前shell中运行的路径,而不是脚本所在的路径。
  2. fontpath为字体文件的路径, 可使用本机字体库, 也可单独下载.
  3. draw.text
    1. fill将以RGB格式填充, 但顺序为BLUR, GREEN, RED.
    2. anchor="mm", align="center"将确保文字以目标点为中心.
  4. cv2.imshow("add_text", bk_img)可以预览效果, 预览窗口将随python进程终止消失.
代码语言:python
代码运行次数:0
复制
import cv2
from PIL import ImageFont, ImageDraw, Image
import numpy as np

# 设置写入文字名和读取文件名
add_text = "opencv+Pillow"
file_bk_img = "background.png"

bk_img = cv2.imread(file_bk_img)  
# 设置需要显示的字体
fontpath = "/Users/sandy/Library/Fonts/60a5feb72b07ed2b26d4e1e2.ttf"
font = ImageFont.truetype(fontpath, 45)
img_pil = Image.fromarray(bk_img)
draw = ImageDraw.Draw(img_pil)
# 绘制文字信息
draw.text((649, 485),  add_text, font=font,
          fill=(92, 60,  4), anchor="mm",
          align="center")
bk_img = np.array(img_pil)

# cv2.imshow("add_text", bk_img)
# cv2.waitKey()
cv2.imwrite(add_text+".jpg", bk_img)

题外话

图片的颜色可以使用在线的服务获取.

如:

在线传图识色,自动识别图片色彩,提取图片主色调 - 码工具

本文中获取的是RGB颜色值.

引用

  1. (2条消息) Python在图片上添加文字_修炼之路的博客-CSDN博客
  2. python - Center-/middle-align text with PIL? - Stack Overflow
  3. 在线传图识色,自动识别图片色彩,提取图片主色调 - 码工具

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 效果展示
  • 过程
  • 题外话
  • 引用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档