Редактирование атрибутов шрифта при переносе строки в изображение - PullRequest
0 голосов
/ 25 февраля 2020

Я использовал Python 3 и подушку в блокноте Jupyter, чтобы взять строку, введенную пользователем, и превратить ее в изображение.

После того, как строка была успешно изменена на изображение, размер шрифта и стиль изображения остаются крошечными и не изменятся, когда я попытаюсь изменить переменную, связанную с шириной и высотой текста, но с окантовкой пространство действительно меняется.

Например, если я увеличу ширину или высоту текста, шрифт не изменится, но изменится белая граница вокруг шрифта. Пожалуйста, дайте мне знать, если кто-нибудь знает, как это исправить.

from PIL import Image, ImageDraw, ImageFont

font = ImageFont.truetype("Verdana.ttf", 100) #seems to have no impact on the program

userinput0000 = input("Enter String Here:")
bgcolor = 'white'
txtcolor = 'black'
text_width, text_height = (5 , 5) # (w,h) changes the size of the white box surrounding the string

userinput0000img = Image.new("RGB",(text_width, text_height), bgcolor)
draw = ImageDraw.Draw(userinput0000img)
draw.text((5, 5), userinput0000, txtcolor) #(x,y)changes the xy coordinates of the string

userinput0000img.show()

im = Image.open("Desktop/0001.jpg")
x, y = userinput0000img.size
im.paste(userinput0000img,(0,0,x,y))
im.show()

Текущий вывод кода:

Это две публикации Stack Overflow, которые я считаю полезными, но ни одна из них, похоже, не относится к одному и тому же типу проблема.

Я также прочитал руководство по подушкам (см. Ссылку ниже) и не нашел ссылки на подобную ситуацию.

https://pillow.readthedocs.io/en/latest/handbook/tutorial.html

1 Ответ

1 голос
/ 25 февраля 2020

Вы пропустили добавление параметра font в вызове ImageDraw.text, ссылаясь на созданный вами экземпляр шрифта.

Итак, измените

draw.text((5, 5), userinput0000, txtcolor) 

на что-то вроде

draw.text((5, 5), userinput0000, txtcolor, font=font) 

и все готово.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...