Лабораторная работа
Растровая графика. С++
Категория: | Лабораторная работа |
Дисциплина: | Системное программирование |
Город: | Беларусь, Минск |
Учебное заведение: | БНТУ, ФИТР |
Тег: | #Системное_программирование |
Стоимость работы: | 20 руб. |
Оценка: | 10 |
Объем страниц: | 14 |
Год сдачи: | 2022 |
Дата публикации: | 14.06.2022 |
* Кроме файла с работой, также есть архив с дополнительными файлами.
Описание дополнительных файлов:
Папка LW-7 — содержит исходный код программы на языке C++
Фрагменты для ознакомления
Лабораторная работа № 7
Растровая графика
Вариант 06
Цель работы: изучить структуру и основные операции по обработке растровых изображений в Windows.
Изучаемые вопросы:
1. Структура файлов *.bmp.
a) Заголовки.
b) Палитра цветов.
c) Битовый массив образа.
2. Структура BITMAP.
a) Создание битовой карты.
b) Заполнение битовой карты.
c) Вывод битовой карты.
Постановка задачи:
1. Создать в графическом редакторе растровые изображения размером 12*12 (16 бит), 16*16 (4 бита), 32*32 (8 бит). Рисунки и дамп включить в отчет.
2. Расшифровку дампов файлов рисунков привести в виде таблицы.
3. Написать программу, где, в соответствии с вариантом из приложения, фигуры из каждого сектора экрана через t после запуска программы начинают двигаться вверх.
Индивидуальное задание:

4.1. Структура файлов *.bmp.
a) Заголовки.
В файлах .bmp содержится 2 заголовка. Они определены структурами BITMAPFILEHEADER и BITMAPINFOHEADER:
Дамп структуры BITMAPFILEHEADER файла размером 16x16 (4 бита). Рисунок 4.1.1

Дамп структуры BITMAPFILEHEADER файла размером 32x32 (8 бит). Рисунок 4.1.2

Дамп структуры BITMAPFILEHEADER файла размером 12x12 (16 бит). Рисунок 4.1.3

…
b) Палитра цветов.
Дамп палитры файла размером 16x16 (4 бита). Рисунок 4.1.7

c) Битовый массив образа.
…
4.2. Структура BITMAP.
a) Создание битовой карты.
// создаём в памяти котекст устройства, совместимый с контекстом hdc
memBit = CreateCompatibleDC(hdc);
Эта функция позволяет создать виртуальный контекст устройства, которое связано с заданным контекстом устройства. Полученный контекст используется дальше для вывода изображения на экран.
a) Заполнение битовой карты.
// получение информации о загруженном изображениии
GetObject(hBitmap, sizeof(bitmap), &bitmap);
// установка битового образа контексту
SelectObject(memBit, hBitmap);
b) Вывод битовой карты.
Функция TransparentBlt выполняет передачу битовых блоков данных о цвете, соответствующих прямоугольнику пикселей заданного исходного контекста устройства в целевой контекст устройства.
…
4.3. Растровые операции.
…
Результаты работы программного обеспечения:

На рисунке 2 представлен результат вывода дампа файла .bmp

Выводы
1. BMP-файл состоит из структур BITMAPFILEHEADER, BITMAPINFOHEADER, палитры цветов и битовой карты изображения.
2. Функция CreateCompatibleDC() позволяет создать контекст устройства в памяти.
3. Функция LoadBitmap() загружает изображение из ресурса и возвращает его дескриптор.
4. Функция TransparentBlt() выводит изображение на контекст, делая прозрачным заданный цвет.
5. Функция BitBlt() выводит изображение на контекст и имеет возможность масштабировать изображение.
6. Функция GetDIBits() позволяет создать DIB для последующего сохранения в файл.