2019-02-13派森学习第87天

昨天豆瓣的图,p了好长时间。想到一个点子,根据文字的多少长短自适应的将文字放在图片正中央的位置,生成图片。

先准备好一个下载图片的程序download_img.py:

download_img.py

大致想法:PIL可以获取初始位置,和offset的位置,再加上计算一下每行字的长度,就可以将文字在图片中居中。

示意图

从图中我们可以看到,文本的插入坐标可以用这样的公式进行计算:(底图宽-文本宽) / 2,那问题又来了,文本宽我们怎么得到呢?

在PIL中,我们可以用draw.textsize获取文本所占的大小,返回是个元组:(宽,高),像这样:

txtSize = draw.textsize(text, imageFont)

修改一番程序之后,实现了文字居中效果:

文字居中

再测试一下多行文字:

多行文字居中

多行文字左对齐,并整体居中的效果还不错。

你可能感兴趣的:(2019-02-13派森学习第87天)