2019-01-19派森学习第62天

实现了另外一种把文字自适应换行写在图片上:

自动换行

仔细研究这份代码后发现,有缺点有优点。

缺点:居然把每行文字的位置,自己手动写进字典里,一点都不能自适应,不够智能。

预设参数

优点:用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

时,总是在当前高度已经超过设置的最高限制后,程序还会错误的往下继续写。

超过了 max_height

现在,好了:


不会再超过 max_height了

至此,adaption.py实现了文本宽度自适应和高度超过限制中断的功能。

还可以改进的地方:

1 把当前的图片保存,把剩下的文字继续生成新的图片。

2 标点符号在某一行第一个位置时的问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,086评论 1 45
  • 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 声明:作者翻译论文仅为学习,如有侵权请...
    SnailTyan阅读 6,025评论 0 2
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 4,722评论 0 1
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • (一) 流云,山水,高远的天。 寂静,波澜,生命的界。 (二) 命运如风 剪不断俗世尘埃 无论你选择遗忘 还是选择...
    淡蓝如初阅读 3,767评论 13 16