1

我的公众号头图属于特别简洁的,原因是我在乎的是文章中的内容,而不是头图。虽然我知道一个好的头图会提升点击率,但其背后耗费的时间是我目前不愿去做的。因此,我目前的头图都是 PS 打开一张图,然后直接放上一行文字来生成的。

历史头图

但是,打开 PS 还是太花费精力了,因此,我希望可以用更少的时间来生成简单明了的头图。因此,我决定优化我的头图制作方案,使用代码来完成公众号头图的生成。

环境依赖

这一次的代码使用 Python 来完成,并基于 Python 的 Pillow 库完成图片的生成,因此,你在运行我的代码时,需要先安装 Pillow

pip install pillow

实现思路

在使用 Pillow 绘图的时候,和我们在前端使用 Canvas 绘图的思路基本一致,我们要做的是

  1. 准备特定背景的画布
  2. 加载字体
  3. 绘制文字
  4. 导出图片

生成的难度并不高,也只需要花费一些时间来编写代码。具体的代码我贴在下方了,供你参考。

代码实现

具体的代码如下

from PIL import Image, ImageDraw, ImageFont

# 常用变量
img_size = (900, 383)
bg_color= "#fca652"
big_text_size = (900,383)
text = "代码生成图片"
text_color = "#eeeeee"
filename = "export.jpg"
font_size = 80

# 生成画布
export_image = Image.new("RGB", img_size, bg_color)

# 加载字体
font = ImageFont.truetype("NotoSansSC-Medium.otf", font_size)

# 计算字体宽度
text_width = font.getsize(text)
text_coordinate = int((big_text_size[0]-text_width[0])/2), int((big_text_size[1]-text_width[1])/2-20)

# 生成绘图 ctx
img_draw = ImageDraw.Draw(export_image)

# 绘制文字
img_draw.text(text_coordinate, text, font=font, fill=text_color)

export_image.save(filename, quality=95)

总结

使用 Python 来绘制头图的难度并不大,比如今天的头图,就是通过代码来绘制的,你可以看看效果。

不过,上面的代码还是很简陋,你觉得这段代码有没有什么值得优化的点呢?


白宦成
1.3k 声望3.2k 粉丝

西秦公子