Лабораторная работа

Растровая графика. С++

Категория:

Лабораторная работа

Дисциплина:

Системное программирование

Город:

Беларусь, Минск

Учебное заведение:

БНТУ, ФИТР

Тег:

#Системное_программирование

Стоимость работы:

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 файла 4 бита
Рисунок 4.1.1 – BITMAPFILEHEADER файла 4 бита

 

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

BITMAPFILEHEADER файла 8 бит
Рисунок 4.1.2 – BITMAPFILEHEADER файла 8 бит

 

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

BITMAPFILEHEADER файла 16 бит
Рисунок 4.1.3 – BITMAPFILEHEADER файла 16 бит

b)  Палитра цветов.

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

Дамп палитры
Рисунок 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

Вывод дампа файла .bmp

 

Выводы

1. BMP-файл состоит из структур BITMAPFILEHEADER, BITMAPINFOHEADER, палитры цветов и битовой карты изображения.

2. Функция CreateCompatibleDC() позволяет создать контекст устройства в памяти.

3. Функция LoadBitmap() загружает изображение из ресурса и возвращает его дескриптор.

4. Функция TransparentBlt() выводит изображение на контекст, делая прозрачным заданный цвет.

5. Функция BitBlt() выводит изображение на контекст и имеет возможность масштабировать изображение.

6. Функция GetDIBits() позволяет создать DIB для последующего сохранения в файл.

23