Найти в Дзене

Программирование на языке Python. Рисование с использованием библиотеки pillow

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Два примера рисования на Python с использованием библиотеки pillow

Сегодня познакомимся с возможностями рисования, которые есть в библиотеке pillow. В статье два конкретных примера. В следующих двух статьях по библиотеке pillow я постараюсь дать справочный материал по её возможностям.

Замечательно, что библиотека pillow (PIL) кроме инструментов работы с пиксельными изображениями имеет ещё обширный набор векторной графики. Для её реализации необходимо импортировать кроме класса Image также класс ImageDraw.

Справочник по методам ImageDraw, как я уже сказал, будет в отдельной статье, здесь же я ограничусь комментариями к программе. Программа ниже создаёт изображение, представленное на рисунке 1.

Текст программы см. ниже
Текст программы см. ниже
primer198.py

Пояснение к тексту программы. Картинка, которая изображена на рисунке взята из задания, которое можно найти в Интернет. Я представил своё решение, которое, наверное, не слишком отличается от того, что можно найти в Интернет.

  • Для того, чтобы рисовать, нужно в начале создать пустую картинку (Image.new()). После этого на основе полученного объекта создаётся объект рисования: ImageDraw.Draw(). После этого оказываются доступны методы рисования, которые я и использовал в в программе. Напомню, отчет координат идёт с правого верхнего угла.
  • Всё рисование происходит в функции picture(). Обратите внимание, что часть параметров задана по умолчанию. Это цвета фигур. Мы всегда можем указать фактические параметры, чтобы изменить цвета. Цветы представлены в так называемом html-формате - три цвета (красный, зелёный, синий) задаются тремя однобайтовыми числами.
  • В программе используются методы: rectangle() для рисования прямоугольных областей, ellipse() для рисования эллипсов и кругов, polygon() для рисования многоугольников. Конечно, параметры перечисленных методов подбирались согласно поставленной задаче. Вы же всегда можете "поиграть" с ними и посмотреть, что из этого получится.
  • В конце выполнения функции picture() полученный рисунок сохраняется в виде графического файла, имя которого было указано в качестве параметра.
Рисунок 1. Изображение, полученное программой primer198.py. Свободно распространяется в Интернет
Рисунок 1. Изображение, полученное программой primer198.py. Свободно распространяется в Интернет

Ниже представлена программа, аналогичная уже рассмотренной, создающая изображение на рисунке 2.

Текст программы см. ниже
Текст программы см. ниже
primer199.py

Отличие от программы primer198.py заключается в том, что функция picture не имеет параметров по умолчанию. Так что все они задаются при вызове функции. Методы же для рисования используются те же.

Рисунок 2. Изображение, полученное программой primer199.py. Свободно распространяется в Интернет
Рисунок 2. Изображение, полученное программой primer199.py. Свободно распространяется в Интернет

Ну, пока всё!

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

Если уж комментария никак не избежать, пишите кратко и чётко. Например: "Так надо", или "а это цикл", или "функция print()".
Если уж комментария никак не избежать, пишите кратко и чётко. Например: "Так надо", или "а это цикл", или "функция print()".