如何在python中绘制文本到位图?

问题描述 投票:1回答:1

我想创建文本到位图。该文本被视为长字符串文本。

所以请告诉我如何从文本创建位图。

我试过这个:

from PIL import Image, ImageFont
img = Image.new('L', (500, 500), color=0)
img_w, img_h = img.size
font = ImageFont.truetype('arial.ttf', 20)
mask = font.getmask('some text related location that is going to write here.'
                    'this is watermark text', mode='L')
mask_w, mask_h = mask.size
print(mask_w,mask_h)
print(type(mask))
d = Image.core.draw(img.im, 0)
# d = d.rotate(40)
d.draw_bitmap(((img_w - mask_w)/2, (img_h - mask_h)/2), mask, 255)
img = img.rotate(40)
img.show()
img.save('op.jpg')

但文字是从两边切断的。这就是我得到的。 enter image description here

python bmp
1个回答
1
投票

文本从两侧切割,因为在旋转之前图像的水平边界已经被切割。您应该创建一个宽度足够大的图像,以便在旋转之前容纳整个文本。也就是说,你应该在获得它之后创建一个宽度为Imagemask_w对象。

© www.soinside.com 2019 - 2024. All rights reserved.