如何使用 PIL 水平和垂直居中多行文本

国王气球

正如标题所说,我想使用 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用PIL创建多行文本

使用PIL将文字水平和垂直对齐

如何水平和垂直居中表格文本?

如何与'write-mode:sideways-lr'结合使用水平和垂直居中文本?

如何使用d3.js在圆弧内沿textPath居中(水平和垂直)文本?

使用PIL使文本居中对齐/居中对齐?

如何在框/容器中水平和垂直居中对齐文本?

如何在TextView中水平和垂直居中放置文本?

如何将表格内的文本对齐到水平和垂直居中

如何在android TextView中水平和垂直居中html文本

如何在flutter中水平和垂直居中放置文本字段

如何在页面中水平和垂直居中微调器?

如何将元素水平和垂直居中

如何将标题水平和垂直居中

使用 display:flex 水平和垂直居中图像

使用绝对位置水平和垂直居中div

使用flexbox父级在绝对定位的div中垂直居中,右对齐,多行文本

如何将文本框从导航菜单的底部边框到横幅图像的末尾水平和垂直居中?

如何在UITextView中水平和垂直对齐文本?

如何使用flexbox在div内水平和垂直居中放置div?

如何通过PIL填充轮廓文本以使用tesseract?

将QTextEdit的文本水平和垂直居中

python PIL在图像上绘制多行文本

如何在视图控制器中水平和垂直居中放置MKMapView?

如何在整个页面上居中(水平和垂直)卡片,这也适用于移动设备?

如何在UIWebView中水平和垂直居中放置HTML字符串

如何在这四个div内容中水平和垂直居中?

如何在表格中水平和垂直居中此选择框(Bootstrap 4.0)?

为什么不能在此div中使用弹性框将其水平和垂直居中?