Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Gestiunea culorilor

c



+ Font mai mare | - Font mai mic



Gestiunea culorilor

Adaptoarele grafice sunt prevazute cu o zona de memorie in care se pastreaza date specifice gestiunii ecranului. Aceasta zona de memorie poarta denumirea de memorie video.



In mod grafic, ecranul se considera format, dupa cum am precizat, din puncte luminoase numite pixeli. Pozitia pe ecran a unui pixel se defineste printr-un sistem de coordonate (x,y) cu x coloana si y linia in care este afisat pixelul.

In cazul adaptoarelor color, unui pixel ii corespunde o culoare. Culoarea pixelilor se pastreaza pe biti in memoria video. Memoria video necesara pentru a pastra starea ecranului setat in mod grafic, se numeste pagina video. Adaptoarele pot contine mai multe pagini video. Gestiunea culorilor este dependenta de tipul de adaptor grafic existent la microprocesor.

Numarul maxim de culori pentru adaptoarele EGA este de 64 (numerotate de la 0 la 63). Cele 64 de culori nu pot fi afisate simultan pe ecran. In cazul adaptorului EGA se pot afisa simultan 16 culori. Multimea culorilor care pot fi afisate simultan pe ecran se numeste paleta. Culorile din componenta unei palete pot fi modificate de utilizator prin intermediul functiilor standard. La initializarea modului grafic se seteaza o paleta implicita.

Pentru adaptorul EGA exista un tablou de 64 de culori (cu coduri intre 0 si 63) din care se selecteaza cele 16 culori pentru paleta. Exista si constante simbolice foarte sugestive cu numele culorilor in engleza. Functiile de gestiune a culorilor pot avea ca parametri nu numai codurille culorilor ci si aceste constante simbolice.

Culoarea fondului este intotdeauna cea corespunzatoare indicelui 0 din paleta. Culoarea pentru desenare este cea corespunzatoare indicelui 15.

Culoarea de fond poate fi modificata cu ajutorul functiei setbkcolor care are prototipul:

void far setbkcolor (int culoare);

unde:

culoare = index in tabloul care defineste paleta.

Exemplu: setbkcolor (BLUE); seteaza culoarea de fond pe albastru.

Pentru a cunoaste culoarea de fond curenta se poate apela functia getbkcolor de prototip:

int far getbkcolor (void);

Ea returneaza indexul in tabloul care defineste paleta pentru culoarea de fond.

Culoarea pentru desenare poate fi modificata folosind functia setcolor de prototip:

void far setcolor(int culoare);

unde:

culoare = index in tabloul care defineste paleta.

Exemplu: setcolor (YELLOW); seteaza culoarea pentru desenare in galben.

Culoarea pentru desenare se poate determina apeland functia getcolor de prototip:

int far getcolor (void);

Ea returneaza indexul in tabloul care defineste paleta relativ la culoarea pentru desenare.

Paleta curenta poate fi modificata cu functiile setpalette si setallpalette. Prima functie se foloseste pentru a modifica o culoare din paleta curenta si are prototipul:

void far setpalette (int index, int cod);

unde:

index este un intreg din si reprezinta indexul in tabloul care defineste paleta pentru culoarea care se modica;

cod este un intreg din intervalul si reprezinta codul culorii care o inlocuieste in paleta pe cea veche.

Exemplu: setpalette (DARKGRAY, 45); modifica culoarea corespunzatoare

indicelui DARKGRAY (adica 8) prin

culoarea de cod 45.

Functia setallpalette permite modificarea simultana a mai multor culori din compunerea paletei si are prototipul:

void far setallpalette (struct palettetype far *paleta);

unde:

palettetype este un tip definit in fisierul graphics.h astfel

struct    palettetype

;

cu     - size dimensiunea paletei

colors tablou ale carui elemente au ca valori codurile componente ale paletei care se defineste.

Modificarea paletei curente cu ajutorul functiilor setpalette si setallpalette conduce la schimbarea corespunzatoare a culorilor afisate pe ecran in momentul apelului functiilor respective.

Pentru a determina codurile culorilor componente ale paletei curente se va folosi functia getpalette de prototip:

void far getpalette (struct palettetype far *paleta);

Paleta implicita poate fi determinata folosind functia getdefaultpalette de prototip:

struct palettetype *far getdefaultpalette(void);

Numarul culorilor dintr-o paleta poate fi obtinut apeland functia getmaxcolor de prototip:

int far getmaxcolor (void);

Functia returneaza numarul maxim de culori diminuat cu 1. Deci in cazul adaptorului EGA functia returneaza valoarea 15.

O alta functie care determina dimensiunea paletei este functia getpalettesize cu prototipul:

int far getpalettesize (void);

Functia returneaza numarul culorilor componente ale paletei. In cazul adaptorului EGA functia returneaza valoarea 16.

Exemplu:

Programul urmator afiseaza codurile culorilor pentru paleta implicita:

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

void main (void)

closegraph();



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 739
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved