在进行画框的时候发现代码报错了,查询原因后发现我的pillow版本删除了该方法
有两种处理办法:1、就是降低版本 2、就是根据新版本修改代码,我这里主要来介绍一下新版本如何修改代码,把textsize改为textbbox
首先先了解一下原先这个textsize方法的作用查看官方文档给的示例
from PIL import Image, ImageDraw, ImageFont
font = ImageFont.truetype("Tests/fonts/FreeMono.ttf")
width, height = font.getsize("Hello world")
left, top = font.getoffset("Hello world")
im = Image.new("RGB", (100, 100))
draw = ImageDraw.Draw(im)
width, height = draw.textsize("Hello world", font)
width, height = font.getsize_multiline("Hello\nworld")
width, height = draw.multiline_textsize("Hello\nworld", font)
很明显这个draw.textsize返回的就是宽高。
然后再看修改后的代码示例
from PIL import Image, ImageDraw, ImageFont
font = ImageFont.truetype("Tests/fonts/FreeMono.ttf")
left, top, right, bottom = font.getbbox("Hello world")
width, height = right - left, bottom - top
im = Image.new("RGB", (100, 100))
draw = ImageDraw.Draw(im)
width = draw.textlength("Hello world", font)
left, top, right, bottom = draw.multiline_textbbox((0, 0), "Hello\nworld", font)
width, height = right - left, bottom - top
修改后的代码draw.textbbox返回了,left、top、right、bottom,我们需要再做一次计算才能得到width和height ,至于传入的参数xy就传入(0,0),然后就是字符,字体
width, height = right - left, bottom - top
标签:textsize,no,attribute,top,draw,height,width,font,Hello
From: https://blog.csdn.net/z17338523033/article/details/142568652