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.


 

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

80462. Різноманітність тваринного світу. Інтегрований урок (природознавство, математика, трудове навчання) 299.5 KB
  Учити розрізняти групи тварин: хребетні безхребетні; формувати вміння визначити істотні ознаки тварин. Закріплювати знання нумерації багатоцифрових чисел: читати записувати представляти число у вигляді суми розрядних доданків; удосконалювати обчислювальні навички вміння розв’язувати задачі та знаходження...
80463. Київ – столиця України 49 KB
  Мета. Поглиблювати інтерес до історії рідного краю, знайомити дітей з витоками історії українського народу. Формувати знання про Київську Русь, місто Київ, його заснування. Познайомити дітей з визначними місцями столиці. Розвивати вміння фантазувати; прогностичне мислення.
80464. Колір як засіб передавання характеру образу 58.5 KB
  Продовжити знайомити учнів із виражальними можливостями кольорів; учити правильно добирати кольори і створювати засобами кольору певний за характером образ; розвивати фантазію уміння орієнтуватись в мікропросторі зорове сприймання уміння добирати кольори для передавання настрою емоцій...
80465. Тяжко тому жити, хто не хоче робити. Л. Глібов «Коник-стрибунець» 134.5 KB
  Мета: поглибити знання учнів про особливості байок закріпити знання поняття байка байкар розширити знання учнів про життя та творчість Л.Глібова малюнки коника мурашки картки Друкар; дитячі книги з творами Л.Глібова Коник-стрибунець мультиплікаційний фільм аудіо відеоматеріали.
80466. Будь обережним на кризі. Письмовий переказ тексту за складеним планом 43.5 KB
  Мета: вдосконалювати вміння учнів переказувати текст, а також письмово відтворювати зміст прочитаного; збагачувати мовлення учнів новими словами й образними висловами; розширити уявлення про небезпеку, що очікує на льоду, виховувати розуміння необхідності дотримуватись правил безпеки взимку...
80467. Кількість елементів множини. Число 0 81.5 KB
  Мета: виробляти в учнів навички лічби; вчити порівнювати предметні множини за кількістю елементів; визначати спільні ознаки об’єктів множини, розпізнавати елементи множини; Формувати поняття числа; ознайомити учнів з числом і цифрою 0. Розвивати уяву, математичне та логічне мислення...
80468. «Вісімка запрошує друзів». (Число і цифра 8. Склад числа 8.) 187.5 KB
  Мета: формування вмінь, навичок та норм діяльності, застосування знань у ситуаціях, наближених до життя; розвиток уміння самооцінювати набуті знання, логічно мислити та висловлювати свої думки; виховувати дружні стосунки та повагу до однокласників.
80469. Склад числа 7. Дні тижня 149 KB
  Задачі уроку: ознайомити учнів зі складом числа 7, розглянути всі варіанти складу числа 7; вправляти в написанні цифр; вчити складати, розв’язувати і записувати приклади на додавання в межах 7; закріплювати знання назв днів тижня; вдосконалювати обчислювальні навички...
80470. Складання таблиць додавання й віднімання числа 6. Робота з геометричним матеріалом 382.5 KB
  Продовжити формування навичок швидкого додавання й віднімання; скласти таблицю додавання й віднімання числа 6; закріпити розширити математичні знання учнів; вправляти в побудові відрізків; розвивати логічне мислення увагу кмітливість; виховувати інтерес до математики.