- •Аннотация
- •Содержание
- •Введение
- •1. Реализация
- •1.1. Рисование окружности
- •1.2. Наложение фильтра
- •1.3. Разделение изображения на части
- •1.4. Взаимодействие с программой
- •1.5. Дополнительные функции
- •1.6. Соглашение
- •2. Примеры
- •Заключение
- •Список использованных источников
- •Приложение а иСходный код программы
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 и закрывает файл.
