Теперь надо загрузить bmp-файл в программу.

Качество изображения конечно ухудшается. Это связано с тем, что теперь для рисования картины применяются только 16 цветов палитры.

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

Соответствующий код содержится в функции ViewBMP(), которую поместим в файл view.cpp. Прежде чем привести код этой функции скажем несколько слов о структуре bmp-файла.

В первых, 14 байтах файла содержатся поля структуры BITMAPFILEHEADER. Эта структура содержит информацию о типе, размере и плане bmp-файла.

В следующих 40 байтах файла содержатся поля структуры BITMAPINFOHEADER. Эта  структура  содержит информацию о размере, цветовом формате растрового изображения.

 В следующих 64 байтах файла содержится информация о 16 цветах палитры, по 4 байта на каждый цвет.

Далее расположен блок байт, в котором содержится изображение.

Поэтому алгоритм работы с bmp-файлом содержит следующие пункты.

1) Читаем графический bmp-файл.

2) Читаем заголовочные структуры BITMAPFILEHEADER, BITMAPINFOHEADER

3) Читаем состав палитры из 16 цветов в системе RGB.

4) Меняем палитру установленную по умолчанию в видеоадаптере на палитру, которая имеется в bmp-файле.

5) Выводим изображение на экран по одному пикселю. 

Ссылка на основную публикацию
Adblock detector