我知道用cv2或枕头在python中将文本放到图像上是可能的。但是,如何将样式化的文本?像挥手还是彩色?
发布于 2022-10-09 22:07:42
一种方法是使用任何绘图库的其他功能来绘制文本以使其风格化。方法是创造性地使用简单的变体,然后分解函数,这些函数可以对给定效果所需的所有步骤进行分组。
我不确定是否有现成的头等舱套餐。
例如,下面的代码将简单地粘贴不同颜色的文本,稍微抵消一下,使用枕头:
from PIL import Image, ImageFont, ImageDraw
img = Image.new("RGB", (530,140))
draw = ImageDraw.Draw(img)
fontpath = "/usr/share/calibre/fonts/liberation/LiberationSans-Bold.ttf"
font = ImageFont.truetype(fontpath, 60)
draw.text((42,42), "stack overflow!", fill=(0, 255, 255), font=font)
draw.text((40,40), "stack overflow!", fill=(255,0 , 0), font=font)
img.save("scratch/text01.png")

或者编写一些代码来输出每种颜色中的一个字母,其中一个函数将按颜色显示颜色(您将了解渲染前的文本大小在处理这些效果时非常有用)。
...
from random import choice
colors = [(255, 128, 0), (0, 255, 128), (0, 255, 255), (255, 255, 0), (255, 255, 255), (255,0, 255)]
def colortext(pos, text, font, draw, colors):
x, y = pos
for letter in text:
width = draw.textlength(letter, font)
draw.text((x, y), letter, fill=choice(colors), font=font)
x += width
colortext((40,40), text, font, draw, colors)https://stackoverflow.com/questions/73995697
复制相似问题