Нужно расширить класс PIL.ImageDraw.ImageDraw и создать его наследника ImageDrawer.
От нового класса требуется реализовать два новых метода: circle(center, radius, fill, outline, width) и square(xy, side, fill, outline, width).
Метод circle предназначен для отрисовки окружности с заданным центром (параметр center в форме кортежа из двух чисел) и радиусом (параметр radius в виде одного числа).
Метод square предназначен для отрисовки квадрата с заданным верхним левым углом (параметр xy в форме кортежа из двух чисел) и стороной (параметр side в виде одного числа).
Параметры fill (цвет заливки), outline (цвет границы), width (толщина границы) у обоих методов являются необязательными. Задайте им значение по умолчанию «в духе» PIL.ImageDraw.ImageDraw.
Решение должно содержать только требуемый класс, ничего вызывать не надо.
ПРИМЕЧАНИЕ:
В примерах в качестве ввода представлены параметры будущего изображения:
• size — размер будущей картинки;
• background — цвет фона;
• circles — список, содержащий параметры каждой окружности, которую требуется отрисовать;
• square — список, содержащий параметры каждого квадрата, который требуется отрисовать.
ПРИМЕР 1,1:
Ввод:
{ ‘background’: ‘white’,
‘circles’: [ { ‘center’: (50, 50),
‘outline’: ‘blue’,
‘radius’: 20,
‘width’: 3},
{ ‘center’: (92, 50),
‘outline’: ‘black’,
‘radius’: 20,
‘width’: 3},
{ ‘center’: (134, 50),
‘outline’: ‘red’,
‘radius’: 20,
‘width’: 3},
{ ‘center’: (71, 70),
‘outline’: ‘yellow’,
‘radius’: 20,
‘width’: 3},
{ ‘center’: (113, 70),
‘outline’: ‘green’,
‘radius’: 20,
‘width’: 3}],
‘size’: (184, 120)}
(вывод картинкой в документе с именем “Пример 1,1”)
ПРИМЕР 1,1:
Ввод:
{ ‘size’: (150, 50),
‘squares’: [ {'fill': ‘red’, ‘side’: 50, ‘xy’: (0, 0)},
{'fill': ‘green’, ‘side’: 50, ‘xy’: (50, 0)},
{'fill': ‘blue’, ‘side’: 50, ‘xy’: (100, 0)}]}
(вывод картинкой в документе с именем “Пример 1,2”)
ЗАРАНЕЕ СПАСИБО)