68890

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

Лекция

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

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

Украинкский

2014-09-26

65.5 KB

0 чел.

ЛЕКЦІЯ 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.


 

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

7902. Велич і трагедія оборони Києва 15.72 KB
  Велич і трагедія оборони Києва З весни 1240 р. кияни під проводом залишеного Данилом Романовичем воєводи Дмитра розпочали  підготовку до відбиття можливого нападу монгольських завойовників. Упродовж літа Батий збирав військо, чисельність якого сягну...
7903. Київська Русь - теорії походження та розвиток 45 KB
  Київська Русь - теорії походження та розвиток Зараз у науці нема єдиної думки щодо походження Давньорусської держави - Київської Русі. Існує декілька теорій. Норманська теорія, її започаткували німецькі вчені Г. Баєр та Г.Міллер...
7904. Конституційні права та свободи людини і громадянина 139 KB
  Тема: Конституційні права та свободи людини і громадянина Мета: ознайомити учнів з конституційними правами та свободами людина і громадянина, їх класифікацією, пояснити значення прав та свобод людини і громадянина та їх захист в Україні формувати в...
7905. Право власності. Урок 52.5 KB
  Тема уроку: Право власності Мета уроку: сформувати уявлення про зміст спадкового права, порядок спадкування за заповітом та за законом навчити аналізувати правові ситуації, що регулюються нормами спадкового права розвивати ...
7906. Володимиро-Суздальське князівство. Великий Новгород. Монгольське завоювання Русі 25.48 KB
  Всесвітня історія: Володимиро-Суздальське князівство. Великий Новгород. Монгольське завоювання Русі. Невська битва та Льодове побоїще. Початок збирання руських земель навколо Москви. Мета: створити умови для всебічного розуміння учнями всіх політичн...
7907. Віра, надія, любов як духовно-практичні виміри людини 41 KB
  Віра, надія, любов як духовно-практичні виміри людини Загальноприйнятим і простим є твердження, що людина не може жити без віри. Насамперед віру тлумачать якупевненість людини в існуванні якого-небудь явища, визнання його реальності. Віра...
7908. Загальні засади організації системи органів влади України 40 KB
  Загальні засади організації системи органів влади України У розділі І Конституції Загальні засади є низка важливих положень, які стосуються характеру і статусу організації державної влади. В ч. 1 ст. 5 Конституції встановлено: «Народ здійснює влад...
7909. Причини, характер, періодизація Другої світової війни 29.2 KB
  Причини, характер, періодизація Другої світової війни Більше, ніж півстоліття минуло з дня закінчення Другої світової війни, яка принесла людству чисельні жертви і руйнування. У цій війні брали участь понад 60 держав, на території яких проживало...
7910. Стереотипи та їх роль у житті людини і суспільства. Толерантність. Ксенофобія. Расизм 26.28 KB
  Стереотипи та їх роль у житті людини і суспільства. Толерантність. Ксенофобія. Расизм. Мета: розвивати готовність і потребу учнів до самопізнання і самореалізації своєї особистості визначити сутність понять стереотипи, толерантність формувати ...