Открыть список
Как стать автором
Обновить

Простейшее рисование с помощью PIL

Python
Недавно потребовалось мне создавать картинку на лету. Решил спользовать библиотеку для питона PIL. Она поддерживает кучу форматов, а также множество цветовых систем (RGB, RGBA и более простые). Итак, рассмотрим простейшее, как создать рисунок и что-либо на нем нарисовать.


Для начала, подключим нужные модули.
from PIL import Image, ImageDraw

Модуль Image управляет непосредственно источником изображения, позволяет создавать, сохранять, октрывать рисунок. А ImageDraw, отвечает непосредственно за рисование геометрических объектов.

Теперь создадим новый рисунок:

image = Image.new("RGBA", (320,320), (0,0,0,0))

Здесь, первый параметр это тип картинки, может быть: 1 (черно-белый), L (монохромный, оттенки серого), RGB, RGBA (RGB с альфа каналом), CMYK, YCbCr, I (32 bit Integer pixels), F (32 bit Float pixels).

Второй параметр, это объект типа tuple задающий размер изображения.

Третий параметр, это непосредственно цвет, т.к. у нас RGBA, то запись (0,0,0,0) соответствует полной прозрачности.

После этого, чтобы нарисовать на нем что-либо, требуется создать объект ImageDraw и передать ему наш рисунок:

draw = ImageDraw.Draw(image)

Попробуем нарисовать красный эллипс:

draw. ellipse((10,10,300,300), fill="red", outline="red")

Здесь мы рисуем эллипс, с начальными координатами: 10,10, и конечными: 300,300. Также, параметр fill задает цвет заливки, а outline — цвет контура. Помимо кодовых названий, можно использовать HTML запись, либо RGB(A) в виде tuple элемента.

Из доступных для рисования фигур доступны: кривая, линия, текст, вырезаный эллипс, точка, полигон.

После этого удалим draw и сохраним рисунок:

del draw
image.save("/path/to/save/test.png", "PNG")


После этого мы получи .png файл, в котором будет красный круг на прозрачном фоне:
image

Вот, думаю для начального понимания поможет кому-нибудь.

Нашел краткую документацию по официальной документации. (залил на свой сайт)

Официальный сайт с документацией
Теги:pythonpilрисование
Хабы: Python
Всего голосов 58: ↑50 и ↓8 +42
Просмотры50.5K

Похожие публикации

Python для работы с данными
26 мая 202131 500 ₽Нетология
Python-разработчик плюс
20 мая 2021168 000 ₽Яндекс.Практикум
Основы языка Python
24 мая 202120 800 ₽Luxoft Training
Мидл python-разработчик
27 мая 202185 000 ₽Яндекс.Практикум
Программирование на Python: Введение
18 октября 202130 000 ₽Сетевая Академия ЛАНИТ

Лучшие публикации за сутки