繁体   English   中英

使用PIL在Python中编写带回车符的文本以返回图像

[英]Writing text with carriage return to image in Python using PIL

我有一个使用PIL将文字写入图像的python脚本。 一切正常,除了当我遇到带有回车符的字符串时。 我需要在文本中保留回车符。 而不是将回车符写到图像上,我得到了一个小方框字符,应该在该处返回。 这是编写文本的代码:

<code>
 draw = ImageDraw.Draw(blankTemplate)
 draw.text((35 + attSpacing, 570),str(attText),fill=0,font=attFont)
</code>

attText是我遇到麻烦的变量。 我在写之前将其转换为字符串,因为在某些情况下,它是一个数字。

感谢您的帮助。

让我们考虑一下。 “返回”表示什么? 这意味着向左走一段距离,然后往下走一段距离,然后继续显示字符。

您必须执行以下操作。

y, x = 35, 570
for line in attText.splitlines():
    draw.text( (x,y), line, ... )
    y = y + attSpacing

您可以尝试以下代码,这些代码完全可以满足我的需求:

# Place Text on background
    lineCnt = 0
    for line in str(attText):
        draw = ImageDraw.Draw(blankTemplate)
        draw.text((35 + attSpacing,570 + 80 * lineCnt), line, font=attFont)
        lineCnt = lineCnt +1

表达式“ y + 80 * lineCnt”根据行号将文本在y位置下移。 (转换的系数“ 80”必须根据字体进行调整)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM