teoria culorilor


aolex


sa zicem ca am o culoare: #000000. aceasta culoare cu opacitate 50% este #7f7f7f. pe mine ma intereseaza sa transform #7f7f7f in #000000, adicu "dublul" ei (opactitate 200%). culoarea de care am nevoie dublata e #0055aa. se poate asa ceva? kisstogether.gif
assault
confusedsmiley.png incerci sa reinventezi roata?

P.S: nu ar trebui sa iasa #000000 ??
sau #1a3281 confusedsmiley.png??
 
aolex
ce roata nene? nu incerc sa reinventez nimic. am nevoie de culoarea care impartita la 2 da #0055aa.
Pirahna
ce pot sa spun ... n00b !!!


#001C71

acum nu ma mai deranja laugh.gif
assault
QUOTE(Pirahna @ Feb 5 2006, 20:21) *
#001C71


daca-i bine atunci eram pe aproape cu #1a3281 roll2.gif
aolex
nu e bine lil` n00b dry.gif! biggrin.gif
assault
QUOTE(aolex @ Feb 5 2006, 20:37) *
lil` n00b dry.gif

@offtopic
laugh.gif hey asta era replica mea roll2.gif
 
danburzo
# xx yy zz

xx - rosu
yy - verde
zz - albastru

aceste valori sunt cuprinse intre 0 - 255 in cod RGB. Forma hexa este pur si simplu transcrierea in baza 16 a acestui cod.

pentru a transforma din hexa in RGB, iei pentru fiecare din cele trei grupuri de doua culori si le transformi din baza 16 in baza 10. Exemplu:

7F = 7 * 16 + F = 127
(in baza 16: A=10, B=11, C=12, ... F=15)

dupa ce ai obtinut valoarea in RGB, pentru a injumatati opacitatea, inmultesti fiecare din cele trei valori cu 2. Daca depaseste 255, ramane 255. La fel, daca vrei sa dublezi opacitatea, imparti valorile cu 2.

Dupa ce ai aflat valorile RGB care te intereseaza, le poti trece ca atare in CSS cu rgb(x,y,z); sau le treci in hexa prin impartirea valorii la 16 (prima cifra a valorii in hexa este reprezentata de catul impartirii, iar a doua de restul impartirii).

Pentru exemplul tau:
#0055aa = rgb (0, 85, 170);
opacitate dubla: rgb (0, 42, 85) = #002a55
Takeshy
Putin probabil sa fie posibil
Codul culorii cu o opacitate de 50% difera in functie de ceeea ce se afla in background.
Matematic e cum a zis @danburzo, dar ia cele 2 culori si pune la Opacitatea la 50% la #0055aa si vezi daca se aseamana. Eu nu prea cred. Chiar daca pui pe background alb, negru sau pe o poza ele nu se aseamana.
danburzo


um.. ai dreptate. acolo am calculat luminozitatea. Pentru transparenta trebuie facuta o medie ponderata cu culoarea de background. Pentru a obtine o opacitate de 30% de exemplu trebuie sa faci:

CODE
( 30 * culoare + 70 * background ) / 100 = culoare cu 30% opacitate


pentru a injumatati opacitatea e mai usor:
QUOTE
(culoare + backround) / 2 = opacitate 50%

astfel se face pentru fiecare componenta ( R, G, B )

pentru a dubla opacitatea nu vad alta rezolvare decat:
CODE
( x + background ) / 2 = culoare

unde x este culoarea pe care o cauti.

Bineinteles exista culori pentru care nu o sa existe opacitate 200%, cum este si culoarea pe care vrei tu sa o dublezi. Dupa cum observi, doua dintre ecuatii dau solutii negative. Aici nu stiu exact ce o sa se intample. Interesant subiect totusi. Revin.
renderman
Opacitatea e tinuta intr-un canal separat - alpha channel. Vrei 50% opacitate faci alpha gri 50%. Vrei 100% faci alpha 255 , nu inteleg, unde e problema?
aolex
se pare ca am gresit. da, "opacitatea" de care am eu nevoie difera de background. daca backgroundul meu e alb, as dori sa aflu dublul lui #0055aa. studiez cand vin de la scoala wink.gif!
danburzo
pentru o culoare RGB data, opacitatea maxima la care poate fi adusa este:
CODE
[ 255/(255-y) * 100 ] %

unde y este cea mai mica dintre valorile (R, G, sau B ) pentru culoarea data...
de exemplu pentru culoarea: #0055aa = rgb (0,85,170) cea mai mica valoare fiind 0, opacitatea maxima la care o putem aduce este 100%

alta culoare cum ar fi: #a0b0c0 = rgb (160, 176, 192), opacitatea maxima este [255/(255-160) * 100] ~= 268 %
deci ii putem calcula dublul opacitatii:

( x + 255 ) / 2 = 160 --> x = 65
( y + 255 ) / 2 = 176 --> y = 97
( z + 255 ) / 2 = 192 --> z = 129

culoarea cautata: rgb(65,97,129) = #416181

Nota: Aici am considerat backgroundul ca fiind alb. Daca si background-ul este o culoare oarecare, se complica (putin cred) calculele.
renderman
QUOTE(aolex @ Feb 5 2006, 20:08) *
ce roata nene? nu incerc sa reinventez nimic. am nevoie de culoarea care impartita la 2 da #0055aa.


Culoarea care o cauti este #7F82AC
Ca sa nu mai faci calcule inutile : image > adjust>hue/saturation> si dai la Lightness +50. NU te atingi de hue sau saturation ca obtii alta culoare.
Scuze, acum am vazut ca cauti o culoare de 2 ori mai inchisa nu de doua ori mai deschisa.
danburzo
luminozitatea nu e tot una cu opacitatea
Aceasta este o versiune simplificatã a paginii originale. Pentru a vizita versiunea originala click aici.