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

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


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

  1. Отражение заданной области. Флаг для выполнения данной операции: –mirror. Этот Функциональность определяется:
    1. выбором оси, в направлении какой делать отражение (горизонтальная или вертикальная). Флаг –axis, возможные значения x и y
    2. Координатами левого верхнего угла области. Флаг –left_up, значение задаётся в формате left.up, где left – координата по x, up – координата по y
    3. Координатами правого нижнего угла области. Флаг –right_down, значение задаётся в формате right.down, где right – координата по x, down – координата по y
  2. Копирование заданной области. Флаг для выполнения данной операции: –copy. Функциональность определяется:
    1. Координатами левого верхнего угла области-источника. Флаг –left_up, значение задаётся в формате left.up, где left – координата по x, up – координата по y
    2. Координатами правого нижнего угла области-источника. Флаг –right_down, значение задаётся в формате right.down, где right – координата по x, down – координата по y
    3. Координатами левого верхнего угла области-назначения. Флаг –dest_left_up, значение задаётся в формате left.up, где left – координата по x, up – координата по y
  3. Заменяет все пиксели одного заданного цвета на другой цвет. Флаг для выполнения данной операции: –color_replace. Функциональность определяется:
    1. Цвет, который требуется заменить. Флаг –old_color (цвет задаётся строкой rrr.ggg.bbb, где rrr/ggg/bbb – числа, задающие цветовую компоненту. пример –old_color 255.0.0 задаёт красный цвет)
    2. Цвет на который требуется заменить. Флаг –new_color (работает аналогично флагу –old_color)
  4. Разделяет изображение на 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 задаёт красный цвет)