trash:project_fokin
Чекер для работы с BMP файлом
Задача
Общая постановка задачи
Обработка файла в формате BMP.
Требуется реализовать программу, которая:
- поворачивает заданную область по часовой стрелке на 90 градусов.
- инвертирует цвета в заданной области.
- рисует две диагонали толщиной 1 пиксель для заданной области черным цветом.
- сохраняет результат в новом файле.
(число здесь идентифицирует номер команды)
Параметры
Программа получает параметры из входного потока и должна проверить их корректность. Параметры:
- input_file
- x0
- y0
- x1
- y1
- commands
- input_file - BMP файл
- x0 y0 левый верхний угол области (отсчет с точки 0, 0)
- x1 y1 правый нижний угол области
- commands - числовой массив неизвестной длины, который хранит в себе последовательность функций обработки входного файла. Массив заканчивается числом 4 - функцией сохранения результата в новом файле.
В случае, если программа получила некорректные параметры, то:
- операционной системе возвращается ненулевой код возврата (return в main)
- не создается выходного в файла
- выводится сообщение об ошибке «Fail with <имя параметра>».
Общие сведения
- 24 бита на цвет
- без сжатия
- файл всегда соответствует формату (проверять не нужно)
- обратите внимание на выравнивание; мусорные данные, если их необходимо дописать в файл для выравнивания, должны быть нулями.
- обратите внимание на порядок записи пикселей
- все поля стандартных BMP заголовков в выходном файле должны иметь те же значения что и во входном (разумеется кроме тех, которые должны быть изменены).