实现了另外一种把文字自适应换行写在图片上:
仔细研究这份代码后发现,有缺点有优点。
缺点:居然把每行文字的位置,自己手动写进字典里,一点都不能自适应,不够智能。
优点:用while加上if判断实现了自动换行。效果如第一个图。
接下来,改进缺点,吸纳优点。
textsize()返回给定的字符串的大小,以像素为单位。
可知,每个汉字有25个像素宽。
现在每行的文字可以实现换行了,但是怎么实现在本行换行后,下一行在下一个位置继续写呢?
(x,y),x表示本行开头是在距离左侧多少像素的地方,y表示本行距离顶端多少像素。
给write_line函数增加了y_position参数后,可以在增加一行时位置自动向下:
效果如图:
经过实验发现,下图中两条参考线之间的距离是30像素,也就是说每行的垂直的间距y_position是每行顶端之间的距离。
想要放弃的时候,又成功了:
本来,没有在for循环里加
if (current_frame_height + font_height) > max_height:
break
时,总是在当前高度已经超过设置的最高限制后,程序还会错误的往下继续写。
现在,好了:
至此,adaption.py实现了文本宽度自适应和高度超过限制中断的功能。
还可以改进的地方:
1 把当前的图片保存,把剩下的文字继续生成新的图片。
2 标点符号在某一行第一个位置时的问题。