Перечисление Errors используется для обозначения ошибок. OpenFileError отвечает за ошибку при открытии файла, MemoryAllocationError отвечает за ошибку при выделении памяти, InputFileBmpError возникает в случае, если исходный файл не имеет формат bmp, ToManyAreas отвечает за ошибку с картинкой, в которой слишком много областей.
Структура Header отвечает за данные, которые хранятся в заголовке BMP-файла. Заголовок файла имеет следующие поля, которые занимают 14 байт:
Таблица 1 – Заголовок файла BMP
Заголовок растрового изображения включает в себя 40 байт:
Таблица 2 – Заголовок файла BMP, в котором содержится информация об изображении
Смещение
Длина поля
Описание поля
14
4
Размер информационного заголовка (40)
18
4
Ширина изображения в пикселях
22
4
Высота изображения в пикселях
26
2
Количество цифровых плоскостей для целевого устройства (1)
28
2
Количество бит (24)
30
4
Тип сжатия изображения
34
4
Размер сжатого изображения в байтах
38
4
Горизонтальное расширение, пиксель/м
42
4
Вертикальное расширение, пиксель/м
46
4
Количество используемых цветов
50
4
Количество «важных» цветов
Глубина изображения файлов BMP в данной работе 24bit. Битовая глубина относится к количеству битов, используемых для представления цвета пикселя. Эти 24 бита разделена на три канала по 8 бит, которые представляют красный, зеленый и синий соответственно. Таким образов, в изображении может быть использовано различных цветов. При такой глубине изображения палитра отсутствует.
Структура Queue используется для реализации очереди. В ней хранится указатель на следующую структуру в очереди и переменная Position.