Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы и курсачи 2022-2023 / 2 сем / Baraeva_Elizaveta_cw.doc
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
8 Мб
Скачать

1.2. Наложение фильтра

1.2.1) filter

Функция в зависимости от переданного флаг устанавливает в 0 или в 255 значение переданного цвета. С помощью switch происходит определение, какой цвет нужно изменить, а затем двойным циклом каждому цвету в пикселе устанавливается переданное значение.

1.3. Разделение изображения на части

1.3.1) draw_vertical_line

Функция рисует вертикальную линию шириной в 1 и длиной в длину изображения пиксель заданного цвета.

1.3.2) draw_horizontal_line

Функция рисует горизонтальную линию шириной в 1 и длиной в ширину изображения пиксель заданного цвета.

1.3.3) split

Функция разделяет изображение линиями заданной толщины и заданным цветом на части. Для проведения вертикальных и горизонтальных линии вычислялись длины кусочков, затем проводились вертикальные и горизонтальные линии с помощью функций draw_vertical_line и draw_horizontal_line.

1.4. Взаимодействие с программой

1.4.1) main

Функция принимает аргументы с консоли, затем в зависимости от первого переданного флага, функция вызывает case_circle, case_filter, case_split, help, info. Всем, за исключением функции help, дальше передавались аргументы, которые были переданы в функцию main. Если был передан неверный флаг, то на экране появляется сообщение об ошибке и вызывается функция help.

1.4.2) case_circle

Функция считывает и обрабатывает, записывая в переменные, оставшиеся данные с консоли. С помощью цикла и switch и дополнительных функций обрабатываются данные. После их обработки данные проверяются на количество и корректность. Если же их недостаточно или были введены не все, то выводится сообщение об ошибке. Затем создается структура image и в нее записываются данные из PNG-файла, вызывается функция рисования окружности, вызывается функция записи данных из структуры в PNG-файл.

1.4.3) case_filter

Функция считывает и обрабатывает, записывая в переменные, оставшиеся данные с консоли. С помощью цикла и switch и дополнительных функций обрабатываются данные. После их обработки данные проверяются на количество и корректность. Если же их недостаточно или были введены не все, то выводится сообщение об ошибке. Затем создается структура image и в нее записываются данные из PNG-файла, вызывается функция filter, вызывается функция записи данных из структуры в PNG-файл.

1.4.4) case_split

Функция считывает и обрабатывает, записывая в переменные, оставшиеся данные с консоли. С помощью цикла и switch и дополнительных функций обрабатываются данные. После их обработки данные проверяются на количество и корректность. Если же их недостаточно или были введены не все, то выводится сообщение об ошибке. Затем создается структура image и в нее записываются данные из PNG-файла, вызывается функция разделения изображения, вызывается функция записи данных из структуры в PNG-файл.

1.5. Дополнительные функции

1.5.1) scan_color

Функция принимает строку и массив color, преобразовывает в 3 числа типа int, проверяет, что они находятся в диапазоне от 0 до 255, записывает эти числа в массив color. Если что-то с числами не так, то выводится сообщение об ошибке.

1.5.2) scan_coordinates

Функция принимает строку и массив coord, преобразовывает в 2 числа типа int, проверяет, что они являются неотрицательными, записывает эти числа в массив coord. Если что-то с координатами не так, то выводится сообщение об ошибке.

1.5.3) scan_number

Функция принимает строку и число number, преобразовывает в число типа int, проверяет, что оно является положительным, записывает число в number. Если что-то пошло не так, то выводится сообщение об ошибке.

1.5.4) help

Функция печатает информацию об использовании программы.

1.5.5) info

Функция печатает информацию о переданном PNG-файле.

1.5.6) read_png

Функция открывает файл, считывает из него информацию, записывает ее в структуру image и закрывает файл.

1.5.7) write_png

Функция открывает файл, записывает в него информацию из структуры image и закрывает файл.

Соседние файлы в папке 2 сем