PIL:在图像的中间下方添加一个文本

2024-10-04 11:36:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有图像的宽度和高度。在

img = Image.open(img_src)
width, height = img.size

font = ImageFont.truetype("MuseoSansCyrl_0.otf", 100)
text_w, text_h = draw.textsize(title, font)

我想在中间添加一个通用的文本。在

下面是我写的函数:

^{pr2}$

有什么方法可以得到所需宽度和所需高度吗?在


Tags: text图像imagesrcimgsize宽度高度
2条回答

所需变量的名称-REQ_WIDTHREQ_HEIGHT-有点误导,因为它们不是宽度和高度。在

你只需要做一点数学运算:

    X_POS = h - text_h
    Y_POS = w//2 - text_w//2  # or (w - text_w) // 2

    draw.text((X_POS, Y_POS), title, (255,255,255), font=font)

您已经调用了draw.textsize,它将返回最终文本的宽度和高度-从这一点开始,您只需计算左上角来呈现文本,如下所示:

顶部为图像高度-文本高度,左侧为图像宽度/2-文本宽度/2-因此,渲染调用变得简单:

draw.text(((w - text_2) // 2, h - text_h), title, (255,255,255), font=font)

(请注意,draw.text包含一个可选的“anchor”参数-但它的可能值没有记录,文档也没有说明它是否实际实现。如果实现了,并且有一个表示(水平中心,底部)的值作为锚定,则只需传递image_width/2和image_height,而不需要调用draw.textsize

相关问题 更多 >