Инструменты пользователя

Инструменты сайта


trash:project_fokin

Чекер для работы с BMP файлом

Задача

Общая постановка задачи

Обработка файла в формате BMP.

Требуется реализовать программу, которая:

  1. поворачивает заданную область по часовой стрелке на 90 градусов.
  2. инвертирует цвета в заданной области.
  3. рисует две диагонали толщиной 1 пиксель для заданной области черным цветом.
  4. сохраняет результат в новом файле.

(число здесь идентифицирует номер команды)

Параметры

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

  • input_file
  • x0
  • y0
  • x1
  • y1
  • commands
  • input_file - BMP файл
  • x0 y0 левый верхний угол области (отсчет с точки 0, 0)
  • x1 y1 правый нижний угол области
  • commands - числовой массив неизвестной длины, который хранит в себе последовательность функций обработки входного файла. Массив заканчивается числом 4 - функцией сохранения результата в новом файле.

В случае, если программа получила некорректные параметры, то:

  • операционной системе возвращается ненулевой код возврата (return в main)
  • не создается выходного в файла
  • выводится сообщение об ошибке «Fail with <имя параметра>».

Общие сведения

  • 24 бита на цвет
  • без сжатия
  • файл всегда соответствует формату (проверять не нужно)
  • обратите внимание на выравнивание; мусорные данные, если их необходимо дописать в файл для выравнивания, должны быть нулями.
  • обратите внимание на порядок записи пикселей
  • все поля стандартных BMP заголовков в выходном файле должны иметь те же значения что и во входном (разумеется кроме тех, которые должны быть изменены).