正如标题所说,我想使用 PIL 将多行文本居中放置在创建的图像上。我使用了此代码 - https://stackoverflow.com/a/1970942/7286028但它只使用中间垂直对齐。但是,我想要垂直和水平对齐。这应该很容易,但由于填充像素和其他因素而变得复杂。
感谢您的帮助,路易斯
框架和文本都以左上角为中心,每个偏移量都以像素为单位。
值 W 是框架的宽度,H 是框架的高度。
值 w 是文本的宽度,h 是文本的高度。
左上方: draw.text((0, 0), msg, fill="black")
右上: draw.text((W-w, 0), msg, fill="black")
左下方: draw.text((0, H-h), msg, fill="black")
右下: draw.text((W-w, H-h), msg, fill="black")
然后,您可以使用这个想法,使用此方法(见链接讨论)使文本距离的一小部分像中途一样:
draw.text(((W-w)/2, (H-h)/2), msg, fill="black")
最后添加一定数量的像素的填充可以通过从代码中添加/减去一个整数来完成:
draw.text((((W-w)/2)-50, ((H-h)/2)-50), msg, fill="black")
Github 链接:https : //github.com/Oliver-Tafe/StackOverflow/blob/master/PillowTextAlign.py
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句