 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
kleampa
Data înscrierii: 10/Iul/2005
Mesaje: 2127
Locație: Bucuresti
|
| Trimis: Mie Aug 27, 2008 10:05 pm Titlul subiectului: Recunoaste PHP-ul ce culori sunt inchise/deschise ? |
|
|
Se da o culoare in format #333333
Pot afla fara sa fac un array cu culorile inchise/deschise daca acea culoare are o tenta de inchis sau deschis pentru a putea scrie cu o culoare de tenta opusa in div-ul cu acel background? |
|
| Sus |
|
bash
Data înscrierii: 21/Aug/2008
Mesaje: 51
|
| Trimis: Mie Aug 27, 2008 11:47 pm Titlul subiectului: |
|
|
Daca le-ar recunoaste inseamna ca ar avea o baza de date cu cele 2 categorii.Oricum e interesant de vazut http://www.softpageinternet.ro/manual_html/Capitole/Anexa%203.htm
De exemplu rosu inchis are codul:rgb(0,0,0) pana la cel mai deschis rgb(255,0,0) ,generalizand pentru rosu:rgb1(x1,0,0),rgbn(xn,0,0) .Intre x1 si xn exista relatia :xn=x1+(n-1)q unde q este ratia progresie aritmetice,in cazul nostru fiind 8 |
|
| Sus |
|
joe_black
Data înscrierii: 03/Mai/2006
Mesaje: 46
|
| Trimis: Mie Aug 27, 2008 11:50 pm Titlul subiectului: |
|
|
Interesanta problema;
Uite o idee:
Tonul de mijloc pt fiecare culoare e 0x7F = 127.
Suma valorilor 301 (127+127+127)
daca ai o culoare cu a carei suma RGB iti da mai mica atunci acea culoare este mai inchisa iar suma RGB mai mare, mai deschisa.
asta dupa un pic studiu pe
http://www.drpeterjones.com/colorcalc/
Works for you ? |
|
| Sus |
|
bash
Data înscrierii: 21/Aug/2008
Mesaje: 51
|
| Trimis: Joi Aug 28, 2008 1:05 am Titlul subiectului: |
|
|
Culorile pe 24biti se impart astfel :8biti pe rosu,8biti pe verde si 8 biti pe albastru.Acum nr maxim care poate fi scris pe 8 biti este 255,deci vom avea rgb(255,255,255) cea mai aprinsa culoare si rgb(0,0,0) cea mai intunecata.Logic 127 reprezinta nuantele medii ,rgb(127,127,127) nuanta de granita intre inchise si deschise.
Prietene tu ai spus ca afirmatia ta se bazeaza pe observatie ,eu ti-am aratat matematic de ce .
//offtopic Ca sa posteze felina dupa mine de aia. |
|
| Sus |
|
joe_black
Data înscrierii: 03/Mai/2006
Mesaje: 46
|
| Trimis: Joi Aug 28, 2008 1:37 am Titlul subiectului: |
|
|
bash a scris: Culorile pe 24biti se impart astfel :8biti pe rosu,8biti pe verde si 8 biti pe albastru.Acum nr maxim care poate fi scris pe 8 biti este 255,deci vom avea rgb(255,255,255) cea mai aprinsa culoare si rgb(0,0,0) cea mai intunecata.Logic 127 reprezinta nuantele medii ,rgb(127,127,127) nuanta de granita intre inchise si deschise.
Si asta e diferit de ce am zis eu prin ce ? Sau nu am fost destul de clar? |
|
| Sus |
|
mihaitha
Data înscrierii: 04/Mai/2007
Mesaje: 1801
Locație: Sibiu
|
| Trimis: Joi Aug 28, 2008 3:58 am Titlul subiectului: |
|
|
| joe_black a scris: Si asta e diferit de ce am zis eu prin ce ? Sau nu am fost destul de clar? Cu nimic, face doar postcount dupa cum s-a obisnuit. Macar de data asta e mai inteligibil. |
|
| Sus |
|
kleampa
Data înscrierii: 10/Iul/2005
Mesaje: 2127
Locație: Bucuresti
|
| Trimis: Joi Aug 28, 2008 11:59 am Titlul subiectului: |
|
|
baieti va multumesc
sfatul cu culoarea medie a fost excelent, singura chestie era ca 127*3 = 381 nu 301 :) probabil greseala de scriere
codul complet mai jos pentru cine vrea sa testeze
Cod: function hex2rgb($color){
$color = str_replace('#', '', $color);
if (strlen($color) != 6){ return array(0,0,0); }
$rgb = array();
for ($x=0;$x<3;$x++){
$rgb[$x] = hexdec(substr($color,(2*$x),2));
}
return $rgb;
}
//$culoare = '#FFFFFF';
$culoare = '#000000';
$rgb = hex2rgb($culoare);
$total = array_sum($rgb);
if($total <=381) {
$text_color='white';
}
else {
$text_color='black';
}
echo'<div style="background:'.$culoare.'; padding:2px;"><span style="color:'.$text_color.';">text</span></div>'; |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|