T tonino1 Utente Attivo 1 Gen 2009 58 3 0 14 Lug 2009 #1 Perdonate questa domanda ma guardando la documentazione di php non ho trovato una funzione che converta un colore rgb in hsb.Mi sapete indicare qualcosa? Grazie mille.
Perdonate questa domanda ma guardando la documentazione di php non ho trovato una funzione che converta un colore rgb in hsb.Mi sapete indicare qualcosa? Grazie mille.
borgo italia Super Moderatore Membro dello Staff SUPER MOD MOD 4 Feb 2008 16.044 150 63 PR www.borgo-italia.it 14 Lug 2009 #2 ciao non credo che esiste una funzione nativa di php, forse devi costruirtela. guarda questi link forse ti possono servire http://www.easyrgb.com/index.php?X=MATH&H=18#text18 http://www.xbeat.net/vbspeed/c_RGBToHSL.htm
ciao non credo che esiste una funzione nativa di php, forse devi costruirtela. guarda questi link forse ti possono servire http://www.easyrgb.com/index.php?X=MATH&H=18#text18 http://www.xbeat.net/vbspeed/c_RGBToHSL.htm
marco.carrieri Utente Attivo 3 Lug 2009 205 2 0 Italia www.carrieriinformatica.com 14 Lug 2009 #3 <? RGBtoHSV(110,143,176); function RGBtoHSV($red, $green, $blue) { $r = $red / 255.0; $g = $green / 255.0; $b = $blue / 255.0; $H = 0; $S = 0; $V = 0; $min = min(min($r, $g),$b); $max = max(max($d, $g),$b); $delta = $max - $min; $V = $max; if($delta == 0) { $H = 0; $S = 0; } else { $S = $delta / $max; $dR = ((($max - $r) / 6) + ($delta / 2)) / $delta; $dG = ((($max - $g) / 6) + ($delta / 2)) / $delta; $dB = ((($max - $b) / 6) + ($delta / 2)) / $delta; if ($r == $max) $H = $dB - $dG; else if($g == $max) $H = (1/3) + $dR - $dB; else $H = (2/3) + $dG - $dR; if ($H < 0) $H += 1; if ($H > 1) $H -= 1; } echo "H: ".($H*360)."<br>"; echo "S: ".($S*100)."<br>"; echo "V: ".($V*100)."<br>"; } ?> Ho trovato questa puo andare?
<? RGBtoHSV(110,143,176); function RGBtoHSV($red, $green, $blue) { $r = $red / 255.0; $g = $green / 255.0; $b = $blue / 255.0; $H = 0; $S = 0; $V = 0; $min = min(min($r, $g),$b); $max = max(max($d, $g),$b); $delta = $max - $min; $V = $max; if($delta == 0) { $H = 0; $S = 0; } else { $S = $delta / $max; $dR = ((($max - $r) / 6) + ($delta / 2)) / $delta; $dG = ((($max - $g) / 6) + ($delta / 2)) / $delta; $dB = ((($max - $b) / 6) + ($delta / 2)) / $delta; if ($r == $max) $H = $dB - $dG; else if($g == $max) $H = (1/3) + $dR - $dB; else $H = (2/3) + $dG - $dR; if ($H < 0) $H += 1; if ($H > 1) $H -= 1; } echo "H: ".($H*360)."<br>"; echo "S: ".($S*100)."<br>"; echo "V: ".($V*100)."<br>"; } ?> Ho trovato questa puo andare?
Eliox Utente Attivo 25 Feb 2005 4.390 3 0 15 Lug 2009 #4 per gli interessati, questa funzione serve allo scopo inverso