使用 python pil 扩展图像并在扩展区域添加文本
Extending a image and adding text on the extended area using python pil
我正在为每张票创建二维码。二维码为图片格式。
我想在两侧(即顶部和底部)垂直扩展此图像。在扩展区域中,我想添加一些额外的数据,如下所示:
Theater Name
_____________________
| |
| |
| QR CODE |
| |
| |
| |
| |
| |
|___________________|
Seat id: 24 C
Movie: The baby boss
Showtime: 2:30 pm
Date: 09/04/17
现在我是这样添加图片的:
image = Image.open('qrcode.jpg')
width, height = image.size
draw = ImageDraw.Draw(image)
text_cinema = "RPG Cinema"
text_seat = "Seat: 15C Balcony"
text_movie = "The baby boss"
text_showtime = "02:30 pm"
text_date = "09/04/17"
font = ImageFont.truetype('font.ttf', 24)
draw.text((40, 5), text_cinema, font=font)
draw.text((40,height - 40), text_seat, font=font)
draw.text((40,height + 40), text_movie, font=font)
draw.text((40,height + 40), text_showtime, font=font)
image.save(str(time()).replace('.', '_') + '.jpg')
然后图像变成这样:
如您所见,文本是添加到图像中的,而不是扩展图像本身。此外,其他数据如 text_movie
、text_showtime
和 text_date
不会被插入,因为文本不会扩展图像。
如何扩展图像并在扩展图像区域插入文本?
首先创建一个更大的图像来写文字,然后将 QR 粘贴到作为背景的图像中。
>>> from PIL import Image
>>> background = Image.new('RGBA', (176, 225), (255,255,255,255))
>>> from PIL import ImageDraw
>>> draw = ImageDraw.Draw(background)
>>> draw.text((5,5), "Top text", (0,0,0))
>>> draw.text((5,210),"Bottom", (0,0,0))
>>> qr = Image.open('qr.png')
>>> background.paste(qr, (0,20))
>>> background.save('back.png')
在本例中,QR 为 176x176。生成的图像为 176x225。我没有费心去定义非默认字体。
这是结果。
我正在为每张票创建二维码。二维码为图片格式。
我想在两侧(即顶部和底部)垂直扩展此图像。在扩展区域中,我想添加一些额外的数据,如下所示:
Theater Name
_____________________
| |
| |
| QR CODE |
| |
| |
| |
| |
| |
|___________________|
Seat id: 24 C
Movie: The baby boss
Showtime: 2:30 pm
Date: 09/04/17
现在我是这样添加图片的:
image = Image.open('qrcode.jpg')
width, height = image.size
draw = ImageDraw.Draw(image)
text_cinema = "RPG Cinema"
text_seat = "Seat: 15C Balcony"
text_movie = "The baby boss"
text_showtime = "02:30 pm"
text_date = "09/04/17"
font = ImageFont.truetype('font.ttf', 24)
draw.text((40, 5), text_cinema, font=font)
draw.text((40,height - 40), text_seat, font=font)
draw.text((40,height + 40), text_movie, font=font)
draw.text((40,height + 40), text_showtime, font=font)
image.save(str(time()).replace('.', '_') + '.jpg')
然后图像变成这样:
如您所见,文本是添加到图像中的,而不是扩展图像本身。此外,其他数据如 text_movie
、text_showtime
和 text_date
不会被插入,因为文本不会扩展图像。
如何扩展图像并在扩展图像区域插入文本?
首先创建一个更大的图像来写文字,然后将 QR 粘贴到作为背景的图像中。
>>> from PIL import Image
>>> background = Image.new('RGBA', (176, 225), (255,255,255,255))
>>> from PIL import ImageDraw
>>> draw = ImageDraw.Draw(background)
>>> draw.text((5,5), "Top text", (0,0,0))
>>> draw.text((5,210),"Bottom", (0,0,0))
>>> qr = Image.open('qr.png')
>>> background.paste(qr, (0,20))
>>> background.save('back.png')
在本例中,QR 为 176x176。生成的图像为 176x225。我没有费心去定义非默认字体。
这是结果。