用 Python 画技术博客配图:不装设计软件,代码生成可复用的信息图

举报
yd_297085602 发表于 2026/11/07 15:32:03 2026/11/07
【摘要】 写技术博客最耗时的环节,往往不是写正文,而是配图。找素材有版权风险,用设计软件要重新学一遍操作,每次改一个数字还得重画。其实技术配图完全可以代码化:写一个几十行的 Python 脚本,跑一次生成一张图,改参数重跑即可。批量生产、版本可控、风格统一。这篇把用代码画技术配图的完整方法讲清楚,工具只用 Pillow,代码可直接跑。一、工具选型:大多数场景 Pillow 就够了图片生成有三类库,各自...

写技术博客最耗时的环节,往往不是写正文,而是配图。

找素材有版权风险,用设计软件要重新学一遍操作,每次改一个数字还得重画。其实技术配图完全可以代码化:写一个几十行的 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 叠加到主图上。这个模式是做出有层次感画面的关键。

三、实战:从零画一张技术头图

下面这段代码能画出常见的深色科技风头图:深色底、装饰网格、渐变光束、主副标题、圆角标签。结构清晰,改参数就能换风格。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。