PIL绘制没有灰色轮廓的文本

时间:2018-07-26 08:08:56

标签: python python-imaging-library

我正在尝试仅使用PIL为黑白图像生成文本,但是文本具有要消除的灰色轮廓。

image = np.zeros((600, 600), dtype=np.uint8)
image[:] = 255
img = Image.fromarray(image, 'L')
fnt = ImageFont.truetype('Arial.ttf', 50)
draw = ImageDraw.Draw(img)
draw.text((50,100), 'test , test', font=fnt)

enter image description here

我需要怎么做才能使文本仅显示为黑色?周围没有灰色区域吗?

1 个答案:

答案 0 :(得分:1)

使用ImageFont.getmaskImageFont.getsize方法,我能够创建一个PIL.Image对象,该对象用硬边掩盖文本。

enter image description here

from PIL import Image, ImageFont

fnt = ImageFont.truetype('arial.ttf', 50)
text = 'test, test'
img = Image.new('1', fnt.getsize(text))
mask = [x for x in fnt.getmask(text, mode='1')]
img.putdata(mask)

PIL.Image对象(img)可用于随时随地将文本添加到图像中,如果您需要更多有关此信息,我可以为您建立一个示例。请记住,img.mode'1',表示黑白。每个像素(由img.getpixel返回)为0或255。