Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
Два примера рисования на Python с использованием библиотеки pillow
Сегодня познакомимся с возможностями рисования, которые есть в библиотеке pillow. В статье два конкретных примера. В следующих двух статьях по библиотеке pillow я постараюсь дать справочный материал по её возможностям.
Замечательно, что библиотека pillow (PIL) кроме инструментов работы с пиксельными изображениями имеет ещё обширный набор векторной графики. Для её реализации необходимо импортировать кроме класса Image также класс ImageDraw.
Справочник по методам ImageDraw, как я уже сказал, будет в отдельной статье, здесь же я ограничусь комментариями к программе. Программа ниже создаёт изображение, представленное на рисунке 1.
Пояснение к тексту программы. Картинка, которая изображена на рисунке взята из задания, которое можно найти в Интернет. Я представил своё решение, которое, наверное, не слишком отличается от того, что можно найти в Интернет.
- Для того, чтобы рисовать, нужно в начале создать пустую картинку (Image.new()). После этого на основе полученного объекта создаётся объект рисования: ImageDraw.Draw(). После этого оказываются доступны методы рисования, которые я и использовал в в программе. Напомню, отчет координат идёт с правого верхнего угла.
- Всё рисование происходит в функции picture(). Обратите внимание, что часть параметров задана по умолчанию. Это цвета фигур. Мы всегда можем указать фактические параметры, чтобы изменить цвета. Цветы представлены в так называемом html-формате - три цвета (красный, зелёный, синий) задаются тремя однобайтовыми числами.
- В программе используются методы: rectangle() для рисования прямоугольных областей, ellipse() для рисования эллипсов и кругов, polygon() для рисования многоугольников. Конечно, параметры перечисленных методов подбирались согласно поставленной задаче. Вы же всегда можете "поиграть" с ними и посмотреть, что из этого получится.
- В конце выполнения функции picture() полученный рисунок сохраняется в виде графического файла, имя которого было указано в качестве параметра.
Ниже представлена программа, аналогичная уже рассмотренной, создающая изображение на рисунке 2.
Отличие от программы primer198.py заключается в том, что функция picture не имеет параметров по умолчанию. Так что все они задаются при вызове функции. Методы же для рисования используются те же.
Ну, пока всё!
Пишите свои предложения и замечания и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.