Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Recunoaste PHP-ul ce culori sunt inchise/deschise ?
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
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  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community