我的公众号头图属于特别简洁的,原因是我在乎的是文章中的内容,而不是头图。虽然我知道一个好的头图会提升点击率,但其背后耗费的时间是我目前不愿去做的。因此,我目前的头图都是 PS 打开一张图,然后直接放上一行文字来生成的。
但是,打开 PS 还是太花费精力了,因此,我希望可以用更少的时间来生成简单明了的头图。因此,我决定优化我的头图制作方案,使用代码来完成公众号头图的生成。
环境依赖
这一次的代码使用 Python 来完成,并基于 Python 的 Pillow 库完成图片的生成,因此,你在运行我的代码时,需要先安装 Pillow
pip install pillow
实现思路
在使用 Pillow 绘图的时候,和我们在前端使用 Canvas 绘图的思路基本一致,我们要做的是
- 准备特定背景的画布
- 加载字体
- 绘制文字
- 导出图片
生成的难度并不高,也只需要花费一些时间来编写代码。具体的代码我贴在下方了,供你参考。
代码实现
具体的代码如下
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 来绘制头图的难度并不大,比如今天的头图,就是通过代码来绘制的,你可以看看效果。
不过,上面的代码还是很简陋,你觉得这段代码有没有什么值得优化的点呢?