gpt4 book ai didi

python - 有没有办法在 PIL 中用黑线勾勒出文本轮廓?

转载 作者:太空狗 更新时间:2023-10-29 18:21:52 28 4
gpt4 key购买 nike

我正在使用 python/PIL 在一组 PNG 图像上写入文本。我能够获得我想要的字体,但我现在想用黑色勾勒出文本轮廓。

这是我的:如您所见,如果背景是白色,则很难阅读。

enter image description here

这是目标:

enter image description here

有没有办法用 PIL 来完成这个?如果没有,我愿意听取其他建议,但没有 promise ,因为我已经使用 PIL 在 python 中开始了一个大型项目。

处理图像绘制的代码部分:

for i in range(0,max_frame_int + 1):
writeimg = Image.open("frameinstance" + str(i) + ".png")
newimg = Image.new("RGB", writeimg.size)
newimg.paste(writeimg)
width_image = newimg.size[0]
height_image = newimg.size[1]
draw = ImageDraw.Draw(newimg)
# font = ImageFont.truetype(<font-file>, <font-size>)
for font_size in range(50, 0, -1):
font = ImageFont.truetype("impact.ttf", font_size)
if font.getsize(meme_text)[0] <= width_image:
break
else:
print('no fonts fit!')

# draw.text((x, y),"Sample Text",(r,g,b))
draw.text((int(0.05*width_image), int(0.7*height_image)),meme_text,(255,255,255),font=font)
newimg.save("newimg" + str(i) +".png")

最佳答案

你可以看看这个Text Outline Using PIL :

import Image, ImageFont, ImageDraw

import win32api, os

x, y = 10, 10

fname1 = "c:/test.jpg"
im = Image.open(fname1)
pointsize = 30
fillcolor = "red"
shadowcolor = "yellow"

text = "hi there"

font = win32api.GetWindowsDirectory() + "\\Fonts\\ARIALBD.TTF"
draw = ImageDraw.Draw(im)
font = ImageFont.truetype(font, pointsize)

# thin border
draw.text((x-1, y), text, font=font, fill=shadowcolor)
draw.text((x+1, y), text, font=font, fill=shadowcolor)
draw.text((x, y-1), text, font=font, fill=shadowcolor)
draw.text((x, y+1), text, font=font, fill=shadowcolor)

# thicker border
draw.text((x-1, y-1), text, font=font, fill=shadowcolor)
draw.text((x+1, y-1), text, font=font, fill=shadowcolor)
draw.text((x-1, y+1), text, font=font, fill=shadowcolor)
draw.text((x+1, y+1), text, font=font, fill=shadowcolor)

# now draw the text over it
draw.text((x, y), text, font=font, fill=fillcolor)

fname2 = "c:/test2.jpg"
im.save(fname2)

os.startfile(fname2)

关于python - 有没有办法在 PIL 中用黑线勾勒出文本轮廓?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41556771/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com