用 Python 画技术博客配图:不装设计软件,代码生成可复用的信息图
写技术博客最耗时的环节,往往不是写正文,而是配图。
找素材有版权风险,用设计软件要重新学一遍操作,每次改一个数字还得重画。其实技术配图完全可以代码化:写一个几十行的 Python 脚本,跑一次生成一张图,改参数重跑即可。批量生产、版本可控、风格统一。
这篇把用代码画技术配图的完整方法讲清楚,工具只用 Pillow,代码可直接跑。
一、工具选型:大多数场景 Pillow 就够了
图片生成有三类库,各自的适用边界很清晰:
Pillow(PIL):位图绘制,画矩形、圆角、文字、渐变、贴图、模糊。适合封面、信息图、架构示意图、带装饰的技术头图。绝大多数博客配图属于这一类。
matplotlib:数据可视化。适合折线、柱状、散点等图表。不适合做设计感强的封面。
svgwrite:矢量图。适合需要无限缩放、或要嵌入网页动态渲染的架构图。输出是 SVG,浏览器原生支持。
选型原则很简单:画图表的用 matplotlib,要网页内联的用 SVG,其余全部用 Pillow。本文全部用 Pillow,因为它覆盖面最广且依赖最少,pip install pillow 即可。
二、先理解三件事:坐标系、字体、图层
用代码绘图和用软件绘图最大的区别是:代码里一切都是坐标和数值。
坐标系:左上角是原点 (0, 0),x 向右增长,y 向下增长。所有元素位置都要自己算。建议在脚本里先定义画布宽高和边距,后续所有坐标都基于变量推导,不要硬编码像素值。
字体:这是中文绘图最大的坑。Pillow 默认字体不支持中文,直接画会变成方块(俗称豆腐块)。必须显式加载支持中文的字体文件。Linux 上常见路径是 Noto CJK 系列,通常是一个 ttc 字体集合,加载时要指定索引。macOS 上可以用 PingFang,Windows 上用微软雅黑。
判断字体是否可用的最简单方法:画一行中文,保存后打开图片看一眼。如果出现方块,说明字体不对——不要凭代码没报错就认为渲染正常。
图层:Pillow 的图片对象有模式之分,RGB 是不透明位图,RGBA 带透明度通道。做发光、半透明卡片这类效果时,要先在一张 RGBA 的透明画布上画,再用 Image.alpha_composite 叠加到主图上。这个模式是做出有层次感画面的关键。
三、实战:从零画一张技术头图
下面这段代码能画出常见的深色科技风头图:深色底、装饰网格、渐变光束、主副标题、圆角标签。结构清晰,改参数就能换风格。
- 点赞
- 收藏
- 关注作者
评论(0)