Советы по добавлению текста к изображениям с помощью 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.