如何将文字放在图片下方的中心?
How to put a text to the center below of the image?
我想制作一个表情包生成器。我的代码如下所示:
from PIL import Image, ImageDraw, ImageFont
import os, random, datetime
TEXT_FOR_MEMES = [
'Отдохнули аче',
'Я бох а ты лох',
'Дада пугай мы же богатые',
'Именно поэтому донбасс может разволиться'
]
os.chdir('direction.')
def make_a_meme():
im = Image.open('pics_for_memes\' + random.choice(os.listdir('pics_for_memes'))) #opens a random picture
draw_text = ImageDraw.Draw(im)
font = ImageFont.truetype('Lobster.ttf', size=65)
width = im.width
height = im.height
draw_text.text(
(width / 2, height / 2),
random.choice(TEXT_FOR_MEMES),
fill=('#ffffff'),
font=font
)
#im.save('pics_for_memes\test.jpg')
im.show()
make_a_meme()
但它总是以不同的方式放置文本。我知道为什么,所以我想问:如何找到屏幕中心下方并将文本正确放在那里?它从中心放置文本。谢谢!
最有帮助。 https://pillow.readthedocs.io/en/stable/reference/ImageDraw.html#PIL.ImageDraw.ImageDraw.textsize
import os
import random
from PIL import Image, ImageDraw, ImageFont
def make_a_meme():
TEXT_FOR_MEMES = [
'Отдохнули аче',
'Я бох а ты лох',
'Дада пугай мы же богатые',
'Именно поэтому донбасс может разволиться'
]
os.chdir('direction.')
im = Image.open('pics_for_memes\' + random.choice(os.listdir('pics_for_memes'))) # opens a random picture
draw_text = ImageDraw.Draw(im)
font = ImageFont.truetype('Lobster.ttf', size=65)
width = im.width
height = im.height
text = random.choice(TEXT_FOR_MEMES)
text_size = draw_text.textlength(text, font=font)
draw_text.text(
((width / 2) - (text_size / 2), height / 2),
text,
fill='#ffffff',
font=font
)
# im.save('pics_for_memes\test.jpg')
im.show()
make_a_meme()
我想制作一个表情包生成器。我的代码如下所示:
from PIL import Image, ImageDraw, ImageFont
import os, random, datetime
TEXT_FOR_MEMES = [
'Отдохнули аче',
'Я бох а ты лох',
'Дада пугай мы же богатые',
'Именно поэтому донбасс может разволиться'
]
os.chdir('direction.')
def make_a_meme():
im = Image.open('pics_for_memes\' + random.choice(os.listdir('pics_for_memes'))) #opens a random picture
draw_text = ImageDraw.Draw(im)
font = ImageFont.truetype('Lobster.ttf', size=65)
width = im.width
height = im.height
draw_text.text(
(width / 2, height / 2),
random.choice(TEXT_FOR_MEMES),
fill=('#ffffff'),
font=font
)
#im.save('pics_for_memes\test.jpg')
im.show()
make_a_meme()
但它总是以不同的方式放置文本。我知道为什么,所以我想问:如何找到屏幕中心下方并将文本正确放在那里?它从中心放置文本。谢谢!
最有帮助。 https://pillow.readthedocs.io/en/stable/reference/ImageDraw.html#PIL.ImageDraw.ImageDraw.textsize
import os
import random
from PIL import Image, ImageDraw, ImageFont
def make_a_meme():
TEXT_FOR_MEMES = [
'Отдохнули аче',
'Я бох а ты лох',
'Дада пугай мы же богатые',
'Именно поэтому донбасс может разволиться'
]
os.chdir('direction.')
im = Image.open('pics_for_memes\' + random.choice(os.listdir('pics_for_memes'))) # opens a random picture
draw_text = ImageDraw.Draw(im)
font = ImageFont.truetype('Lobster.ttf', size=65)
width = im.width
height = im.height
text = random.choice(TEXT_FOR_MEMES)
text_size = draw_text.textlength(text, font=font)
draw_text.text(
((width / 2) - (text_size / 2), height / 2),
text,
fill='#ffffff',
font=font
)
# im.save('pics_for_memes\test.jpg')
im.show()
make_a_meme()