PHP Převod z hex do rgb a naopak
Jak převádět v PHP barvy mezi RGB a hex hodnotami? Například #ffffff je RGB(255,255,255).
Tento problém už jsem nakousl v článku Objektově orientované myšlení. Tady je návod na převod barev mezi RGB hodnotami a hex barvami a naopak.
Je to snadné, postačí tyto dvě funkce:
- function hex2rgb($hex) {
- if (ereg("^#", $hex)) $hex=substr($hex, 1);
- if (strlen($hex)==3) $hex=$hex[0].$hex[0].$hex[1].$hex[1].$hex[2].$hex[2];
- elseif (strlen($hex)!=6) return false;
- $rgb=array();
- $rgb[0] = hexdec(substr($hex,0,2)); // red
- $rgb[1] = hexdec(substr($hex,2,2)); // green
- $rgb[2] = hexdec(substr($hex,4,2)); // blue
- return $rgb;
- }
- function rgb2hex($rgb) {
- $r = dechex($r[0]<0?0:($r[0]>255?255:$r[0]));
- $g = dechex($g[0]<0?0:($g[0]>255?255:$g[0]));
- $b = dechex($b[0]<0?0:($b[0]>255?255:$b[0]));
- $color = (strlen($r) < 2?'0':'').$r;
- $color .= (strlen($g) < 2?'0':'').$g;
- $color .= (strlen($b) < 2?'0':'').$b;
- return '#'.$color;
- }
Fungují jak pro zadání barvy s #, nebo jen s třemi číslicemi. Vyzkoušejte v ukázce.
komentáře
RSS Komentáře
function hex2rgb(h){
h = (h.charAt(0)==„#“) ? h.substring(1,7) : h;
return [
parseInt(h.substring(0,2),16),
parseInt(h.substring(2,4),16),
parseInt(h.substring(4,6),16)
]; }
Zachytili jsme pokus o napadení spam robotem, tato položka nemůže být přidána do databáze.
WTF


