Блок задач

4. Структуры данных

Темы
Сложность 3

Задача «Размножение изображения («плитка»)»

Необходимо разработать программу, которая генерирует изображение, «залитое» заданным паттерном.

Входные данные

  1. BMP-файл с изображением паттерна.
  2. Текстовый файл, в котором указаны размеры генерируемого изображения.
  3. Имя BMP-файла, который будет сгенерирован.

Пример текстового файла:

1000 1000

Файл может содержать пустые и невалидные строки. Программа должна корректно это обрабатывать.

Задача

Пользуясь одной из header-only библиотек для работы с изображениями, сгенерировать BMP-файл с заданными размерами. Изображение в этом файле должно быть результатом многократного копирования входного изображения, но не вылезать за границы размеров.

Пример

Входное изображение (размер 112x112):

Входное изображение

Файл с размерами:

760 760

Выходное изображение (размер 760x760):

Выходное изображение

Тестирование

Для всех разработанных модулей должны быть созданы наборы unit тестов. Функций ввода/вывода нужно тестировать с помощью std::stringstream. Тестировать работу с изображениями нужно путем самостоятельной генерации изображений, без использования файлов.