擅长:python、mysql、java
<p>我认为<code>PIL</code>中提供的<a href="http://effbot.org/imagingbook/imagefont.htm" rel="noreferrer">ImageFont</a>模块应该有助于解决文本字体大小问题。只需检查适合您的字体类型和大小,并使用以下函数更改字体值。</p>
<pre><code># font = ImageFont.truetype(<font-file>, <font-size>)
# font-file should be present in provided path.
font = ImageFont.truetype("sans-serif.ttf", 16)
</code></pre>
<p>所以你的代码看起来类似于:</p>
<pre><code>from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
img = Image.open("sample_in.jpg")
draw = ImageDraw.Draw(img)
# font = ImageFont.truetype(<font-file>, <font-size>)
font = ImageFont.truetype("sans-serif.ttf", 16)
# draw.text((x, y),"Sample Text",(r,g,b))
draw.text((0, 0),"Sample Text",(255,255,255),font=font)
img.save('sample-out.jpg')
</code></pre>
<p>您可能需要付出额外的努力来计算字体大小。如果您想根据用户在<code>TextArea</code>中提供的文本量更改它。</p>
<p>要添加文本换行(多行文字),只需大致了解一行中可以包含多少个字符,然后您就可以为文本编写预处理函数,基本上可以找到每行中最后一个字符,并将该字符前面的空格转换为新行。</p>