Посмотрим, как можно подключить bmp-файл к DOS программе

Посмотрим, как можно подключить bmp-файл к DOS программе. Возьмем, для примера, программу mov01DOS.cpp, В этой программе в качестве фона будем использовать, какую ни будь картину, хранящуюся в bmp-файле. Сначала скажем несколько слов о графической системе, которая используется в DOS программах.

            При работе с компилятором BORLANDC 3.1 мы устанавливаем видеоадаптер в режим работы VGA, и выбираем графическую моду равную 1 ли 2. Соответствующий код имеет вид. 

int mode =2, driver = 9;

initgraph(&driver, &modec:\\borlandc\\bgi«);

В этом режиме работы видеоадаптера используется механизм цветовой палитры. Палитра имеет 16 цветов, которые можно одновременно вывести на экран. Это связано с тем, что в режиме VGA на один пиксель выделено 4 бита видеопамяти (24=16).

            Цвета палитры нумеруются от 0 до 15. Каждый цвет color[n] равен некоторому числу от 0 до 65. Чтобы выяснить, какие числа содержатся в цветах палитры, приведем небольшой код, который позволяет эти числа вывести на экран.

 

      //структура для работы с палитрой

      struct palettetype pal;

 

      //переносим текущую палитру адаптера в структуру pal

      getpalette(&pal);

 

      //выводим состав палитры

      for( int j=0; j<pal.size; j++)

            printf(«color[%2d]: %X», i, pal.colors[i]);

 

Результат  приведем в следующей таблице.

Номер цвета

Содержание цвета

color[n]

Название цвета в палитре

0

00

BLACK

1

01

BLUE

2

02

GREEN

3

03

CYAN

4

04

RED

5

05

MAGENTA

6

20

BROWN

7

07

LIGHTGRAY

8

56

DARKGRAY

9

57

LIGHTBLUE

10

58

LIGHTGREEN

11

59

LIGHTCYAN

12

60

LIGHTRED

13

61

LIGHTMAGENTA

14

62

YELLOW

15

63

WHITE

Числа во второй колонке являются содержимым каждого из 16-ти цветов палитры. Эти числа одновременно являются номерами DAC регистров. Эти  регистры являются регистрами цифро-аналогового преобразователя (digitaltoanalogconverter).

            Имеется 256 регистров DAC, мы используем первые 64 регистра DAC. Каждый регистр содержит 18 бит, по 6-ти бит на красную, зеленую и синюю компоненты цвета.

Номера регистров

Биты красной компоненты

Биты зеленой компоненты

Биты синей компоненты

0

RRRRRR

GGGGGG

BBBBBB

1

RRRRRR

GGGGGG

BBBBBB

 

 

 

 

62

RRRRRR

GGGGGG

BBBBBB

63

RRRRRR

GGGGGG

BBBBBB

 

 

 

 

 

 

 

 

254

RRRRRR

GGGGGG

BBBBBB

255

RRRRRR

GGGGGG

BBBBBB

 

 

Пусть, например, выбирается из палитры цвет с номером 10 для закраски пикселя. Это означает, что выбирается DAC регистр с номером 58. В этом регистре содержится информация об интенсивности красной, зеленой и синей компонентах цвета 10. Видеоадаптер использует эту информацию, чтобы послать сигналы на электронные пушки монитора, красную, зеленую и синюю. 

По умолчанию все регистры видеоадаптера заполнены определенными цветами. После включения пли перезагрузки компьютера в DAC-регистры записывается палитра цветов, хранящаяся в BIOS. Однако эти цвета можно изменить. В результате можно изменить палитру, заменив 16 стандартных цветов на 16 новых цветов.

            Для подключения графического файла к DOS программе, надо чтобы этот файл был подходящего формата. Наиболее просто подключить файл в формате bmp с палитрой в 16 цветов.

Покажем, как можно получить графический файл нужного нам формата и bmp-файла другого формата. Пусть имеется картина корабля в файле ship_24.bmp следующего формата 1024´768´24bbmp. На Рис.32. показано изображение, содержащееся в этом файле. 

 

 

 

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