Обработка формата PNG

Общие требования – представлены тут


Программа должна иметь следующую функции по обработке изображений:

  1. (1) Рисование окружности. Флаг для выполнения данной операции: –circle. Окружность определяется:
    1. координатами ее центра и радиусом. Флаги –center и –radius. Значение флаг –center задаётся в формате x.y, где x – координата по оси x, y – координата по оси y. Флаг –radius На вход принимает число больше 0
    2. толщиной линии окружности. Флаг –thickness. На вход принимает число больше 0
    3. цветом линии окружности. Флаг –color (цвет задаётся строкой rrr.ggg.bbb, где rrr/ggg/bbb – числа, задающие цветовую компоненту. пример –color 255.0.0 задаёт красный цвет)
    4. окружность может быть залитой или нет. Флаг –fill. Работает как бинарное значение: флага нет – false , флаг есть – true.
    5. цветом которым залита сама окружность, если пользователем выбрана залитая окружность. Флаг –fill_color (работает аналогично флагу –color)
  2. (2) Фильтр rgb-компонент. Флаг для выполнения данной операции: –rgbfilter. Этот инструмент должен позволять для всего изображения установить в диапазоне от 0 до 255 значение заданной компоненты. функциональность определяется
    1. Какую компоненту требуется изменить. Флаг –component_name. Возможные значения red, green и blue.
    2. В какое значение ее требуется изменить. Флаг –component_value. Принимает значение в виде числа от 0 до 255
  3. (3) Разделяет изображение на N*M частей, а линии требуемой толщины должны рисоваться между ними. Расстояния между блоками - thickenss (то есть изображение будет расширено на количество линий по оси * толщину). При определении участка, в который будет использоваться крайний пиксель округление выполнять в соответствии с математическими правилами округления. Флаг для выполнения данной операции: –split. Реализация: провести линии заданной толщины. функциональность определяется:
    1. Количество частей по “оси” Y. Флаг –number_x. На вход принимает число больше 1
    2. Количество частей по “оси” X. Флаг –number_y. На вход принимает число больше 1
    3. Толщина линии. Флаг –thickness. На вход принимает число больше 0
    4. Цвет линии. Флаг –color (цвет задаётся строкой rrr.ggg.bbb, где rrr/ggg/bbb – числа, задающие цветовую компоненту. пример –color 255.0.0 задаёт красный цвет)