[英]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.