【问题标题】:Writing text with carriage return to image in Python using PIL使用 PIL 在 Python 中将带有回车符的文本写入图像
【发布时间】:2009-04-14 16:53:16
【问题描述】:

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

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

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

感谢您的帮助。

【问题讨论】:

    标签: python text image python-imaging-library


    【解决方案1】:

    让我们想一想。 “回归”意味着什么?表示向左走一段距离,再向下走一段距离,继续显示字符。

    您必须执行以下操作。

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

    【讨论】:

      【解决方案2】:

      您可以尝试以下代码,它非常适合我的需求:

      # 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”必须根据字体进行调整)。

      【讨论】:

        猜你喜欢
        • 2017-08-10
        • 2019-01-17
        • 1970-01-01
        • 1970-01-01
        • 2019-11-07
        • 2012-03-05
        • 2021-04-04
        • 1970-01-01
        • 2017-03-28
        相关资源
        最近更新 更多