PIL">

Блог gigimon'а

Рисуем с помощью PIL

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

image0

Для начала, подключим нужные модули.

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 файл, в котором будет красный круг на прозрачном фоне :

Пример

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

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

Официальный  сайт с документацией

2008 — 2018