This shows you the differences between two versions of the page.
project_shevchenko [2017/03/12 14:58] tatyana.berlenko created |
project_shevchenko [2022/12/10 09:08] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Чекер для работы с BMP файлом ====== | ||
- | |||
- | ===== Задача ===== | ||
- | |||
- | ==== Общая постановка задачи ==== | ||
- | |||
- | Обработка файла в формате BMP. | ||
- | |||
- | Требуется реализовать программу, которая: | ||
- | |||
- | - отражает заданную область по вертикали. | ||
- | - делит область на 4 равные части и меняет их местами по диагонали. | ||
- | - если заданная область является квадратом, вписывает в нее окружность белого цвета с толщиной линии 1 пиксель, иначе заливает область черным цветом. | ||
- | - сохраняет результат в новом файле. | ||
- | |||
- | (число здесь идентифицирует номер команды) | ||
- | ==== Параметры ==== | ||
- | |||
- | Программа получает параметры из входного потока и должна проверить их корректность. | ||
- | Параметры: | ||
- | * input_file | ||
- | * x0 | ||
- | * y0 | ||
- | * x1 | ||
- | * y1 | ||
- | * commands | ||
- | |||
- | * input - BMP файл | ||
- | * x0 y0 левый верхний угол области (отсчет с точки 0, 0) | ||
- | * x1 y1 правый нижний угол области | ||
- | * commands - числовой массив неизвестной длины, который хранит в себе последовательность функций обработки входного файла. Массив заканчивается числом 4 - функцией сохранения результата в новом файле. | ||
- | |||
- | В случае, если программа получила некорректные параметры, то: | ||
- | * операционной системе возвращается ненулевой код возврата (return в main) | ||
- | * не создается выходного в файла | ||
- | * выводится сообщение об ошибке "Fail with <имя параметра>". | ||
- | |||
- | ==== Общие сведения ==== | ||
- | |||
- | * 24 бита на цвет | ||
- | * без сжатия | ||
- | * файл всегда соответствует формату (проверять не нужно) | ||
- | * обратите внимание на выравнивание; мусорные данные, если их необходимо дописать в файл для выравнивания, должны быть нулями. | ||
- | * обратите внимание на порядок записи пикселей | ||
- | * все поля стандартных BMP заголовков в выходном файле должны иметь те же значения что и во входном (разумеется кроме тех, которые должны быть изменены). | ||