pillow这个模块在10.0.0以后的版本textsize属性给删除了,如果还想用这个属性
新代码textsize弃用,使用textbbox代替:
ImageDraw.Draw.textbbox(xy, text, font=None, spacing=0, align='left')
其中,各参数的含义如下:
xy:一个二元组 (x, y),表示文本的起始位置,即文本框的左上角坐标。
text:表示要绘制的文本内容。
font:表示字体对象,可以使用 ImageFont.truetype() 方法创建。
spacing:表示行与行之间的间距,默认为 0。
align:表示文本的水平对齐方式,可以是 'left'、'center' 或 'right'。
textbbox() 方法会根据文本内容、字体和起始位置等信息计算出文本框的大小,返回一个四元组 (x0, y0, x1, y1),表示文本框的左上角和右下角坐标。其中,(x0, y0) 表示文本框的左上角坐标,(x1, y1) 表示文本框的右下角坐标。
在绘制文本时,我们可以使用 textbbox() 方法先计算出文本框的大小,然后根据文本框的大小来计算文本的位置,从而确保文本在图片中居中或居左等对齐方式。
实例:
left, top, right, bottom = draw.textbbox((0, 0), text, font)
width, height = right - left, bottom - top