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.


 

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

77785. PR-технологии продвижения торговой компании Babyliss 358.5 KB
  В современном мире PR является одним из наиболее динамично развивающихся и перспективных видов предпринимательской деятельности. С середины 90-х гг. в России наблюдается настоящий бум развития PR, обусловленный произошедшими экономическими и социальными изменениями.
77786. Проектируемое предприятие ресторан с баром в г. Саратове 26.19 MB
  Среди предприятий общественного питания основное место занимают рестораны, кафе, бары. Они играют заметную роль в организации отдыха населения. Туда приходят не только для того, чтобы поесть, но и отметить юбилей, важное событие в жизни человека, того или иного коллектива...
77787. Совершенствование системы развития персонала организации (на примере ЗАО АФ «Аудит-Классик») 306.06 KB
  Актуальность развития персонала заключается в следующем. Система развития персонала способствует формированию коллектива, обладающего высокими способностями и сильной мотивацией к выполнению задач, стоящих перед организацией. Развитие персонала ведет к росту производительности...
77789. Учет денежных средств в ОАО «Горецкая райагропромтехника» 192.53 KB
  Всевозможные расчеты возникающие между организациями осуществляются при помощи денежных средств в силу чего завершается превращение денежной формы выделенных средств в производственные запасы получение денежной выручки и заключенного в ней чистого дохода.
77790. ПРАВОВОЕ РЕГУЛИРОВАНИЕ ПОСТАВКИ ТОВАРОВ ДЛЯ ГОСУДАРСТВЕННЫХ НУЖД 158.95 KB
  Цели работы заключается в следующем: Определение и изучение процесса формирования заказов на поставку товаров для государственных нужд, Рассмотрение способов проведения процедуры размещения заказа на поставку государственных нужд...
77791. Деловая этика секретаря и руководителя 100.44 KB
  Этике деловых отношений уделяется в последнее время всё большее внимание. При отсутствии секретаря в рабочее время в дверь стучать не принято. В нерабочее время следует в дверь постучать; открыть ее можно только после того как услышали приглашение.
77792. РУЧНАЯ И МЕХАНИЗИРОВАННАЯ ДУГОВАЯ СВАРКА И НАПЛАВКА 9.11 MB
  В справочнике систематизированы материалы отражающие технологии дуговой сварки и наплавки металлов покрытым электродом в среде защитных газов плавящимся и неплавящимся электродом а также приведены основные сведения применительно к оборудованию...