Советы по добавлению текста к изображениям с помощью Python.
PIL (Python Imaging Library) — это бесплатная дополнительная библиотека с открытым исходным кодом для Python для управления изображением. PIL также известен как подушка. Для получения дополнительной информации вы можете прочитать документацию здесь. В этой истории я хочу поделиться советами по добавлению текста к изображениям с помощью Python.
Хорошо, если вы думаете, что проще использовать фоторедактор, такой как Photoshop, Canva, PowerPoint и т. д., вы правы. Но для обучения обработке изображений. Это хорошее начало добавления текста к изображению. Как я уже говорил, мы будем использовать библиотеку PIL в качестве основной библиотеки. Хорошо, давайте перейдем к этому.
Подготовка
Монтаж
Чтобы установить PIL в вашу систему, запустите эту команду в командной строке /терминале.
pip install pillow
Автор этой библиотеки прекрасно описывает, как ее установить здесь.
Картина
Я буду использовать эту картинку как изображение, которое я буду редактировать, да, один из моих любимых персонажей: Арья Старк.
Шрифты
Есть много сайтов, на которых вы можете получить шрифты бесплатно, такие как Google Fonts, Font Meme и т. д. Поскольку я буду использовать шрифты Игры престолов в изображении, шрифты можно скачать здесь.
Все уже настроено. Перейдем к разделу кода
Код
Первое, что нужно сделать, это импортировать некоторые функции из библиотеки PIL.
from PIL import Image, ImageDraw, ImageFont
Функция изображения позволит вам манипулировать изображением, ImageDraw позволяет вам рисовать/писать что-то на картинке, ImageFont позволяет писать шрифт на картинке. Далее, чтобы упростить задачу, давайте создадим простую функцию для записи текста на изображение, которое будет использоваться, а не только один раз.
def adding_text(img, text, position, size, colour): font = ImageFont.truetype(“fonts/Game of Thrones.ttf”, size) draw = ImageDraw.Draw(img) draw.text(position, text, font=font, fill=colour) return img
Из приведенной выше функции видно, что я объявляю местоположение и размер шрифта, а затем сохраняю его в переменный шрифт. Затем ImageDraw позволит нам манипулировать изображением, а затем мы рисуем текст в желаемом месте, вводимом тексте, используемом шрифте и выбранном цвете.
Наконец, давайте напишем основной код.
if __name__ == “__main__”: with Image.open(“img/no-one.jpg”) as img: print(img.size) img = adding_text(img, “Arya Stark”, (975, 1340), 90, (255, 255, 255)) img = adding_text(img, “House of Stark”,(950, 1450), 75, (255, 255, 255)) img.save(“img/no-one-with-text.png”)
Если вы запустите образ, вывод в терминале будет таким
(2500, 1663)
Потому что мы распечатываем размер изображения. В результате также создается картинка с заголовком, который вы указываете в последней строке.
Хорошо, давайте поговорим об основном коде. img.size
нужно убедиться, что вы знаете размер изображения. В моем случае размер изображения (2500, 1663), что означает ширину 2500 и высоту 1663. Раздел img.size
можно печатать или нет; это облегчает описание местоположения текста. Затем для добавления текста мы вызываем функцию, которую создали ранее. Для координат текста будет проще, если вы часто этим занимаетесь. В моем случае я пытаюсь поместить текст в изображение следующим образом.
Ну, это нужно немного смысла, не так ли?. Вот полный исходный код.
Заключение
В этой статье я рассказываю о добавлении текста в изображение с помощью Pillow в Python. Я надеюсь, что вы получили информацию из него, не забудьте поделиться, если вы найдете лучший способ, чтобы знания могли быть бесплатными.
Вилен Данке. ✌️
Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.