Обработка формата PNG Общие требования -- представлены [[..:5|тут]] ----- Программа должна иметь следующую функции по обработке изображений: - Элемент нумерованного спискаРисование квадрата. Флаг для выполнения данной операции: ''--square''. Квадрат определяется: - Координатами левого верхнего угла. Флаг ''--left_up'', значение задаётся в формате ''left.up'', где left – координата по x, up – координата по y - Размером стороны. Флаг ''--side_size''. На вход принимает число больше 0 - Толщиной линий. Флаг ''--thickness''. На вход принимает число больше 0 - Цветом линий. Флаг ''--color'' (цвет задаётся строкой ''rrr.ggg.bbb'', где rrr/ggg/bbb – числа, задающие цветовую компоненту. пример ''--color 255.0.0'' задаёт красный цвет) - Может быть залит или нет. Флаг ''--fill''. Работает как бинарное значение: флага нет – false , флаг есть – true. - Цветом которым он залит, если пользователем выбран залитый. Флаг ''--fill_color'' (работает аналогично флагу ''--color'') - Поменять местами 4 куска области. Флаг для выполнения данной операции: ''--exchange''. Выбранная пользователем прямоугольная область делится на 4 части и эти части меняются местами. Функциональность определяется: - Координатами левого верхнего угла области. Флаг ''--left_up'', значение задаётся в формате ''left.up'', где left – координата по x, up – координата по y - Координатами правого нижнего угла области. Флаг ''--right_down'', значение задаётся в формате ''right.down'', где right – координата по x, down – координата по y - Способом обмена частей: “по кругу”, по диагонали. Флаг ''--exchange_type'', возможные значения: ''clockwise'', ''counterclockwise'', ''diagonals'' - //Особенность работы системы//: Координаты используются по принципу [left_up, right_down). При нечетной длине размер берется как 2 целой части деления на пополам. Пример -- left_up = 96.112, right_down = 299.175 -> 175 - 112 = 63 -> 63 / / 2 = 31 -> 2 * 31 = 62 строки будет изменено -> по вертикали меняются строки 112..173 , а не 112..175 - Находит самый часто встречаемый цвет и заменяет его на другой заданный цвет. Флаг для выполнения данной операции: ''--freq_color''. Функциональность определяется: - Цветом, в который надо перекрасить самый часто встречаемый цвет. Флаг ''--color'' (цвет задаётся строкой ''rrr.ggg.bbb'', где rrr/ggg/bbb – числа, задающие цветовую компоненту. пример ''--color 255.0.0'' задаёт красный цвет) - Инверсия цвета в заданной области. Флаг для выполнения данной операции: ''--inverse''. Функциональность определяется - Координатами левого верхнего угла области. Флаг ''--left_up'', значение задаётся в формате ''left.up'', где left – координата по x, up – координата по y - Координатами правого нижнего угла области. Флаг ''--right_down'', значение задаётся в формате ''right.down'', где right – координата по x, down – координата по y