#python #python-imaging-library #discord.py
#python #python-imaging-library #discord.py
Вопрос:
def centerdraw(img, msg, color, font):
W, H = img.size
draw = ImageDraw.Draw(img)
w, h = draw.textsize(msg, font=font)
draw.text(((W-w)/2,(H-h)/2), msg, color=color, font=font)
итак, у меня есть это, которое рисует сообщение, которое я отправил в центре изображения
img = Image.open('name1.png')
if len(ctx.author.name) > 9:
msg = ctx.author.name[:9]
if len(ctx.author.name) <= 9:
msg = ctx.author.name
color = (0, 0, 0)
font = ImageFont.truetype('bubblegum.ttf', 27)
centerdraw(img=img, msg=msg, color=color, font=font)
img.save('newname1.png')
У меня есть этот код, который рисует ctx.author.name на изображение (ctx определен). Но это ничего не делает. Он не рисует то, что должен рисовать. Когда я впервые попробовал это, это сработало, но потом перестало работать. Любая помощь? Кстати ctx.author.name
, это связано с discord.py , он в основном возвращает str
объект.
Комментарии:
1. Вы проверили, что размер img больше, чем textsize? вы ввели явные значения,
your draw.text
чтобы заставить его работать? Что изменилось? Если бы это работало сейчас, не пытайтесь идентифицировать элементы, которые изменились.2. @TomMyddeltyn Да, я пробовал текст с разными размерами, я пробовал 10, 27, 30, 50 и 100, но это ничего не изменило, также ни один из элементов не изменился
3. создайте минимальный рабочий код с примерами данных, чтобы мы могли просто скопировать и запустить его. Проблема может быть только в шрифте, которого у нас нет. ИЛИ, может быть, ваша проблема заключается в шрифте. Вы пробовали использовать стандартные шрифты?
Ответ №1:
Хорошо, я наконец нашел ответ. Мне пришлось преобразовать изображение в режим RGB следующим образом, а затем делать все, что я хочу