68890

Управління палітрою

Лекция

Информатика, кибернетика и программирование

Стандартний драйвер egavga.bgi використовує RGBI - систему роботи з кольором (Red,green,blue,intensity). На базі трьох кольорів шляхом їх змішування і установки низької або високої яскравості свічення формується апаратно зумовлена палітра.

Украинкский

2014-09-26

65.5 KB

1 чел.

ЛЕКЦІЯ 1

Управління палітрою

Стандартний драйвер  egavga.bgi використовує  RGBI - систему роботи з кольором (Red,green,blue,intensity).

На базі трьох кольорів шляхом їх змішування і установки низької або високої яскравості свічення формується апаратно зумовлена палітра.

Розглянемо принцип формування 16 кольорів - 23.

Константа

Значення

    Код

Колір на                           екрані

Компоненти    кольору

Black

0

0000

чорний

. . . .

Blue

1

0001

синій

. . . B

Green

2

0010

зелений

. . G .

Cyan

3

0011

блакитний

. . GB

Red

4

0100

червоний

. R . .

Magenta

5

0101

фіолетовий

. R . B

Brawn

6

0110

коричневий

. RG .

Light-Gray

7

0111

світло-сірий

. RGB

Dark-Gray

8

1000

темно-сірий

I . . .

Light-Blue

9

1001

яскраво-синій

I . . B

Light-Green

10

1010

яскраво-зелений

I .G .

Light-Cyan

11

1011

яскраво-блакитний

I .GB

Light-Red

12

1100

малиновий

IR . .

Light-Magenta

13

1101

яскраво-фіолетовий

IR . B

Yellow

14

1110

жовтий

IRG .

White

15

1111

білий

IRGB

При розширенні можливості роботи з кольором, наприклад  для 64 кольорової палітри,   в байті використовується 6 бітів, а не 4 як в 16 кольоровій палітрі).          

Принцип формування палітри приблизно той же, але в основу береться RrGgBb-система.

        R,g,b-нормальна яскравість;

       r,g,b- яскравість в два рази менше.

Структура байта, що представляє 1 апаратний колір.

Біт

Компонент кольору

0

B

Синій, інтенсивність 2/3

1

G

Зелений, інтенсивність 2/3

2

R

Червоний, інтенсивність 2/3

3

B

Синій, інтенсивність 1/3

4

G

Зелений, інтенсивність 1/3

5

r

Червоний, інтенсивність 1/3

6

Не використовується

7

Не використовується

Для кожного чистого кольору R,G і B існує 3 градації яскравості 1/3,2/3 і 1/3+2/3=1.

      Так само можливі комбінації бітів.

Можлива кількість кольорів –26–64

Константа

Значення

    Код

Колір на                           екрані

Компоненти    кольору

Black

0

000000

чорний

. . . . . .

Blue

1

000001

синій

. . . . . B

Green

2

000010

зелений

. . . . G .

Cyan

3

000011

блакитний

. . . . GB

Red

4

000100

червоний

. . . R . .

Magenta

5

000101

фіолетовий

. . . R . B

Brawn

20

010100

коричневий

. g . R . .

Light-Gray

7

000111

світло-сірий

. . . RGB

Dark-Gray

56

111000

темно-сірий

r g b . . .

Light-Blue

57

111001

яскраво-синій

r g b . . B

Light-Green

58

111010

яскраво-зелений

r g b .G .

Light-Cyan

59

111011

яскраво-блакитний

r g b .GB

Light-Red

60

111100

малиновий

r g b R . .

Light-Magenta

61

111101

яскраво-фіолетовий

r g b R . B

Yellow

62

111110

жовтий

r g b RG .

White

63

111111

білий

r g b RGB

Для 256 кольорів використовується весь байт–28–256

Після старту процедури  Initgraph вся інформація про встановлену палітру знаходиться в змінній стандартного типу  

 

Type

      PaletteType=record;

     Size:Word;

     Colors:array[1..MaxColor] of Shortint;

end;

Поле Size містить кількість кольорів в палітрі.

Поле Colors містить кольори, що діють, в елементах масиву.

Отримати інформацію про поточну палітру можна за допомогою процедур:

                 GetDefaultPalette(var Palette:PaletteType);

                -getpalette(var Palette:palettetype)

  1.  Getdefaultpalette повертає набір кольорів, встановлений за умовчанням при ініціалізації графіки;
  2.  Getpalette повертає поточний набір кольорів;
  3.  Getpalettesize:word- повертає кількість кольорів, що входять в поточну палітру;
  4.  Getmaxcolor-повертає  максимальну кількість кольорів, що входять в поточну палітру.

У разі, коли програміста не влаштовує палітра, що є, її можна змінити:

         -якщо потрібно зменшити розташування одного кольору, то використовується процедура Setpalette

        -якщо необхідно змінити всю палітру -setallpalette.

Процедура Setpalette(Colornum:word;Color:Shortint);

ColorNum-номер кольору в палітрі;

Color-нове значення кольору;

     Setpalette(0,red);

     Setpalette(7,yellow);

Зміна кольору на екрані відбувається негайно і без очищення екрану.

Процедура Setallpalette(Var Palette) -дозволяє створювати свою палітру  відповідності між програмними і апаратними кольорами.

Змінна Palette-бестипова-перший байт повинен містити кількість кольорівNum у встановленій палітрі, наступні Num байтів повинні містити кольори з апаратної палітри, яка використовуватиметься.

Приклад: накреслити прямокутник на встановленому фоні, потім змінити палітру і знову накреслити прямокутник.

Program DemoPalette;

Uses Crt, Graph;

Var  

       Grd,Grm:integer;

       Pal:PaletteType;

Begin

     Grd:=detect;

     InitGraph(grd,grm,’G:\’);

     Rectangle(10,10,200,200);     {white}

     Delay(1500);

     SetPalette(15,Blue);               {Blue–перо}

     Delay(1500);                          { встановлює палітру}

     Pal.Color[0]:=Red; Pal.Color[1]:=Lightred;

     …

     …

     Pal.Color[15]:=Brawn;

     SetAllPalette(Pal);                   { фон змінений на Red}

     Rectangle(100,100,300,300);   {Brоwn}

     Readkey;

     GetDefaultPalette(Pal);

     SetAllPalette(Pal);

     CloseGraph;

     End.


 

А также другие работы, которые могут Вас заинтересовать

15216. Халел Досмұхамедұлы - Мұрат ақын шығармаларын жинаушы һәм зерттеуші 42 KB
  Алаш қайраткерлері ұлтымыздың рухани мұрасын жинауда, жариялауда және зерттеуде маңызды істер атқарғаны белгілі. Олардың бұл саладағы аса нәтижелі жұмыстары – осы халық үшін маңызды мәселенің бастауында тұрғандығымен де бағалы. Айталық, Әлихан Бөкейхан, Ахмет Байтұрсынұлы халық ауыз әдебиеті үлгілерін, Мағжан Жұмабаев Базар
15217. ҚАЛАМ ҚҰДІРЕТІ 69.5 KB
  ҚАЛАМ ҚҰДІРЕТІ Алла тағала берген ақылымен теңіздей терең білімімен уақыттың өзінен озған ғұлама фәниден бақиға аттанарда өсиет айтыпты: €œДауыл ма жауын ба сең бе сел ме өрт пе дерт пе... қандай қысылтаяң қиын шақ болса да ең алдымен халықтың қазынасын құтқарыңд
15218. Хамит Ерғалиев 53.5 KB
  Қайран Хамаң Дүниеден Хамаң Хамит ақын Ерғалиев озғалы да бірнеше жылдың мұғдары болыптыау. Кейде өзіңненөзің отырып таңғаласың: біртуар тұлғаларды күнде көріп олардың лебізін тыңдап жүргенде ондай адамдар ешқашан өмірден өтпейтіндей көресің. Оның үстіне Хамит ...
15219. Ш. Сәтбаеваның ғылыми мұрасы 160 KB
  Қазақстан Республикасы Ұлттық Ғылым Академиясының корреспондент-мүшесі, Қазақ КСР ҒА Ш.Уәлиханов атындағы 1-ші дәрежелі сыйлығының лауреаты6 филология ғылымдарының докторы, профессор Шәмшиябану Қанышқызы Сәтбаева
15220. Шал ақын - Тілеуке Құлекеұлы 165 KB
  ӘЗIЛ СӨЗДIҢ АТАСЫ Көркем сөз өнерiнiң көрнектi өкiлi қазақтың ақтангер ақындарының бiрегейi әйгiлi Шал ақынның туғанына биыл 250 жыл толып отыр. Кейбiр газеттерде андасанда шын жанашырлықпен жарқ еткен қызғылықты мақалалар арнаулар болмаса бабаның тойы деп бауыр тартып...
15221. Шерхан Мұртаза 35.5 KB
  Шерхан Мұртаза жазушы аудармашы қоғам қайраткері Шерхан Мұртаза Қамалға арнаған бір хатында жетпіс деген сөз Жет Піс деген екі сөзден құралады яғни жетілген шағың піскен кезің деген расау деген ой білдіріпті. Иә ол рас мен бұл сөзге көңіл аудармаушы едім. Осы...
15222. Шәкәрім және Пушкин 74 KB
  Шәкәрім және Пушкин Шәкәрім шығармалары туған халқына қайтып оралды ақынның өмір бойы армандағаны да осы еді. Өзі айтқандай €œЖаз шығып жаманшылық жоғалғанда€ өлең дастандары қарасөздері баспа жүзіне түгел шығып жылдар бойы аңсап күткен оқушысының қолына т
15223. Шәңгерей Сейіткерейұлы Бөкеев 40 KB
  Шәңгерей Сейіткерейұлы Бөкеев 1847-1920 Шәңгерей ХІХ ғасырдың екінші жартысы мен ХХ ғасырдың басында қалыптасып дамыған қазақ жазба әдебиеті өкілдерінің бірі. Ол Батыс Қазақстан облысының қазіргі Орда ауданында Жасқұс құмында хан ордасында дүниеге келген. Ж
15224. Уәлиханов Шоқан Шыңғысұлы 238 KB
  Уәлиханов Шоқан Шыңғысұлы Уәлиханов Шоқан Мұхамедханафия Шыңғысұлы 1835-1865 қазақтың ұлы ғалымы ағартушы шығыстанушы тарихшы этнолог географ фольклортанушы суретші. Қазіргі Қостанай облысы аумағында Сарыкөл ауданы Күнтимес мекенінде дүниеге келген. Бабасы...