Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Библиотека pillow. Справочник по объекту ImageDraw

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео. Справочные материалы по объекту ImageDraw библиотеки pillow (PIL) Это ещё один справочник по библиотеке pillow. На это раз речь пойдёт об объекте ImageDraw, предоставляющий набор графических примитивов. Атрибуты ImageDraw Значения атрибутов #!/usr/bin/python3
from PIL import Image, ImageDraw
new_image = Image.new("RGB", (100, 200), (0, 0, 0))
imd = ImageDraw.Draw(new_image)
print(imd.fill)
print(imd.font)
print(imd.fontmode)
print(imd.ink) Результат False
None
L
-1
Методы ImageDraw Пример рисования дуги #!/usr/bin/python3
from PIL import Image, ImageDraw
new_image = Image.new("RGB", (400, 400), (0, 0, 0))
imd = ImageDraw.Draw(new_image)
imd.arc([0, 100, 200, 200], 180, 360, (0, 100, 100), 5)
new_image.save('im.jpg') Цвет в программе определяется тремя компонентами: RGB. Но можно вместо кортежа использовать словесное название цвета. Н
Оглавление

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

Справочные материалы по объекту ImageDraw библиотеки pillow (PIL)

Это ещё один справочник по библиотеке pillow. На это раз речь пойдёт об объекте ImageDraw, предоставляющий набор графических примитивов.

Атрибуты ImageDraw

  • ImageDraw.fill — следует ли использовать ImageDraw.ink по умолчанию.
  • ImageDraw.font — текущий шрифт по умолчанию.
  • ImageDraw.fontmode — текущий режим рисования шрифтом.
  • ImageDraw.ink — внутреннее представление текущего цвета.

Значения атрибутов

#!/usr/bin/python3
from PIL import Image, ImageDraw
new_image = Image.new("RGB", (100, 200), (0, 0, 0))
imd = ImageDraw.Draw(new_image)
print(imd.fill)
print(imd.font)
print(imd.fontmode)
print(imd.ink)

Результат

False
None
L
-1


Методы ImageDraw

  • ImageDraw.getfont() — получить текущий шрифт.
  • ImageDraw.arc(xy, start, end, fill=None, width=0) — метод рисует дугу. xy - список, две точки для определения ограничивающей рамки. start - начальный угол в градусах. end - конечный угол в градусах. fill - цвет линии. width - толщина линии в градусах.

Пример рисования дуги

#!/usr/bin/python3
from PIL import Image, ImageDraw
new_image = Image.new("RGB", (400, 400), (0, 0, 0))
imd = ImageDraw.Draw(new_image)
imd.arc([0, 100, 200, 200], 180, 360, (0, 100, 100), 5)
new_image.save('im.jpg')

Цвет в программе определяется тремя компонентами: RGB. Но можно вместо кортежа использовать словесное название цвета. Например "red".

  • ImageDraw.bitmap(xy, bitmap, fill=None) — рисует растровое изображение.
  • ImageDraw.chord(xy, start, end, fill=None, outline=None, width=1) — делает тоже, что ImageDraw.arc(), но соединяет конечные точки дуги прямой.
  • ImageDraw.ellipse(xy, fill=None, outline=None, width=1) — рисует эллипс. xy - список, две точки для определения ограничивающей рамки. fill - цвет заполнения, outline - цвет контура, width - ширина линии.

#!/usr/bin/python3
from PIL import Image, ImageDraw
new_image = Image.new("RGB", (400, 400), (0, 0, 0))
imd = ImageDraw.Draw(new_image)
imd.ellipse([50, 100, 300, 300], (0, 100, 100), (100, 0, 0), 5)
new_image.save('im.jpg')

Результат выполнения программы см. рисунок 1.

Рисунок 1. Эллипс, см. программу выше
Рисунок 1. Эллипс, см. программу выше
  • ImageDraw.line(xy, fill=None, width=0, joint=None) — рисует линию между заданными точками (xy), если точек более 2, то рисуется ломанная линия. fill - цвет линии. width - ширина линии. joint - тип соединения между линиями, если ломанная, 'curve' - закругление.
  • ImageDraw.pieslice(xy, start, end, fill=None, outline=None, width=1) — похож на ImageDraw.chord(), но может соединять конечные точки дуги ломанной линией.

Пример программы

#!/usr/bin/python3
from PIL import Image, ImageDraw
new_image = Image.new("RGB", (400, 400), (0, 0, 0))
imd = ImageDraw.Draw(new_image)
imd.pieslice((225, 50, 375, 200), 30, 270, (255, 255, 0),(0, 0, 255))
new_image.save('im.jpg')

Результат см. рисунок 2

Рисунок 2. См. программу выше
Рисунок 2. См. программу выше
  • ImageDraw.point(xy, fill=None) — рисует точку заданного цвете.
  • ImageDraw.polygon(xy, fill=None, outline=None, width=1) — рисование многоугольника с заливкой.
  • ImageDraw.regular_polygon(bounding_circle, n_sides, rotation=0, fill=None, outline=None) — рисует правильный многоугольник, вписанный в окружность. bounding_circle - ограничивающая окружность, задаваемая центром и радиусом (x, y, r), n_sides - количество сторон, rotation - угол поворота прямоугольника, fill - цвет заливки, outline - цвет контура.

Пример программы

#!/usr/bin/python3
from PIL import Image, ImageDraw
new_image = Image.new("RGB", (400, 400), (0, 0, 0))
imd = ImageDraw.Draw(new_image)
imd.regular_polygon((200, 200, 100), 7, 0, (50, 50, 200), (255, 255, 20))
new_image.save('im.jpg')

Результат работы программы см. рисунок 3

Рисунок 3. Правильный многоугольник, см. программу выше
Рисунок 3. Правильный многоугольник, см. программу выше

Наш справочник по ImageDraw ещё не закончился. Отдельно будет статья по работе с текстом и шрифтами.

Ну, пока всё!

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

- Ваша программа ничего не рисует на экране. - Она рисует, но цветом фона.
- Ваша программа ничего не рисует на экране. - Она рисует, но цветом фона.