|
hexdec
Hexadecimal to decimal
(PHP 4, PHP 5)
Example 1149. hexdec() example<?php Related Examples ( Source code ) » hexdec Examples ( Source code ) » dechex Examples ( Source code ) » hexdec Examples ( Source code ) » Animated Talking Captcha php class Code Examples / Notes » hexdecrledger
To convert a cellular ESN from hexadecimal to decimal, use the following code. The base conversion is different due to the fact that the first two characters of a hexadecimal value must be converted seperately from the remaining six characters. <? function esnhexdec($hex){ $a = sprintf("%03d", hexdec(substr($hex, 0, 2))); $b = sprintf("%08d", hexdec(substr($hex, 2, 6))); return $a . $b; } ?> manithu
This tiny function will return foreground colors (either black or white) in contrast to the color you provide: <?php function getContrastColor($color) { return (hexdec($color) > 0xffffff/2) ? '000000' : 'ffffff'; } ?> This function will return the opposite (negative): <?php function negativeColor($color) { //get red, green and blue $r = substr($color, 0, 2); $g = substr($color, 2, 2); $b = substr($color, 4, 2); //revert them, they are decimal now $r = 0xff-hexdec($r); $g = 0xff-hexdec($g); $b = 0xff-hexdec($b); //now convert them to hex and return. return dechex($r).dechex($g).dechex($b); } ?> zubfatal, root
This replaces my previous class. I've added a few more input checks in the rgb2hex function. Also it returned incorrect hex values for 1-digit values. color::rgb2hex(array(0,0,0)) would output 000 not 00000. <?php /** * Convert colors * * Usage: * color::hex2rgb("FFFFFF") * color::rgb2hex(array(171,37,37)) * * @author Tim Johannessen <root@it.dk> * @version 1.0.1 */ class color { /** * Convert HEX colorcode to an array of colors. * @return array Returns the array of colors as array(red,green,blue) */ function hex2rgb($hexVal = "") { $hexVal = eregi_replace("[^a-fA-F0-9]", "", $hexVal); if (strlen($hexVal) != 6) { return "ERR: Incorrect colorcode, expecting 6 chars (a-f, 0-9)"; } $arrTmp = explode(" ", chunk_split($hexVal, 2, " ")); $arrTmp = array_map("hexdec", $arrTmp); return array("red" => $arrTmp[0], "green" => $arrTmp[1], "blue" => $arrTmp[2]); } /** * Convert RGB colors to HEX colorcode * @return string Returns the converted colors as a 6 digit colorcode */ function rgb2hex($arrColors = null) { if (!is_array($arrColors)) { return "ERR: Invalid input, expecting an array of colors"; } if (count($arrColors) < 3) { return "ERR: Invalid input, array too small (3)"; } array_splice($arrColors, 3); for ($x = 0; $x < count($arrColors); $x++) { if (strlen($arrColors[$x]) < 1) { return "ERR: One or more empty values found, expecting array with 3 values"; } elseif (eregi("[^0-9]", $arrColors[$x])) { return "ERR: One or more non-numeric values found."; } else { if ((intval($arrColors[$x]) < 0) || (intval($arrColors[$x]) > 255)) { return "ERR: Range mismatch in one or more values (0-255)"; } else { $arrColors[$x] = strtoupper(str_pad(dechex($arrColors[$x]), 2, 0, STR_PAD_LEFT)); } } } return implode("", $arrColors); } } ?> hajamie@home
This function will take a hex $color, e.g. fa34bc and make it the shade you want, e.g. anywhere between 0 and 255. The smaller the number, the darker the output color. It keeps the color the same, only changing the shade. function correctshade($color, $shade) { $r = hexdec(substr($color,0,2)); $g = hexdec(substr($color,2,2)); $b = hexdec(substr($color,4,2)); $sum = ($r + $g + $b); $x = (($shade * 3) - $sum) / $sum; if ($x >= 0) { $x = $x + 1; } else { $x = 1 + $x; } $r = intval($x * $r); $g = intval($x * $g); $b = intval($x * $b); $r = dechex($r); $g = dechex($g); $b = dechex($b); return $r.$g.$b; } brian
The issue I've seen with the existing hex to dec conversion routines is the lack of error-trapping. I stick to the theory that one should try to cover ALL the bases when writing a generalized routine such as this one. I have a varied background that covers a wide variety of design/development languages, on the web as well as desktop apps. As such I've seen multiple formats for writing hex colors. For example, the color red COULD be written as follows: #ff0000 &Hff0000 #ff &Hff Therefore I have written a function that is case-insensitive and takes into account the chance that different developers have a tendency to format hex colors in different ways. <?php function convert_color($hex){ $len = strlen($hex); $chars = array("#","&","H","h"); $hex = strip_chars($hex, $chars); preg_match("/([0-9]|[A-F]|[a-f]){".$len."}/i",$hex,$arr); $hex = $arr[0]; if ($hex) { switch($len) { case 2: $red = hexdec($hex); $green = 0; $blue = 0; break; case 4: $red = hexdec(substr($hex,0,2)); $green=hexdec(substr($hex,2,2)); $blue = 0; break; case 6: $red = hexdec(substr($hex,0,2)); $green=hexdec(substr($hex,2,2)); $blue = hexdec(substr($hex,4,2)); break; }; $color[success] = true; $color[r] = $red; $color[g] = $green; $color[b] = $blue; return $color; } else { $color[success] = false; $color[error] = "unable to convert hex to dec"; }; } function strip_chars($string, $char){ $len = strlen($string); $count = count($char); if ($count >= 2) { for ($i=0;$i<=$count;$i++) { if ($char[$i]) { $found = stristr($string,$char[$i]); if ($found) { $val = substr($string,$found+1,$len-1); $string = $val; }; }; }; } else { $found = stristr($string,$char); if ($found) { $val = substr($string,$found+1,$len-1); }; }; echo $val; return $val; } /* To use simply use the following function call: $color = convert_color("#FF"); this will return the following assoc array if successful: *[success] = true *[r] = 255 *[g] = 0 *[b] = 0 or copy and paste the following code: $hex = "FFFFFF"; // Color White $color = convert_color($hex); var_dump($color); */ ?> As you can see, the function "convert_color" accepts a hex # in most acceptable formats and returns an associative array. [success] is set to TRUE if the function succeeds and FALSE if not. The array members [r], [g] and [b] hold the red,green and blue values respectively. If it fails, [error] holds a custom error message. "strip_chars" is a support function written to remove the unwanted characters from the hex string, and sends the concatenated string back to the calling function. It will accept either a single value or an array of values for the characters to remove. djneoform
since i couldn't find one, here's an HEX to ASCII converter.. (takes HEX strings (in ASCII) and converts each two digit HEX code into it's ASCII equivalent) function hex2ascii($str) { $p = ''; for ($i=0; $i < strlen($str); $i=$i+2) { $p .= chr(hexdec(substr($str, $i, 2))); } return $p; } halit yesil mail
RGB to Hex Hex to RGB Function <?PHP function rgb2hex2rgb($c){ if(!$c) return false; $c = trim($c); $out = false; if(eregi("^[0-9ABCDEFabcdef\#]+$", $c)){ $c = str_replace('#','', $c); $l = strlen($c); if($l == 3){ unset($out); $out[0] = $out['r'] = $out['red'] = hexdec(substr($c, 0,1)); $out[1] = $out['g'] = $out['green'] = hexdec(substr($c, 1,1)); $out[2] = $out['b'] = $out['blue'] = hexdec(substr($c, 2,1)); }elseif($l == 6){ unset($out); $out[0] = $out['r'] = $out['red'] = hexdec(substr($c, 0,2)); $out[1] = $out['g'] = $out['green'] = hexdec(substr($c, 2,2)); $out[2] = $out['b'] = $out['blue'] = hexdec(substr($c, 4,2)); }else $out = false; }elseif (eregi("^[0-9]+(,| |.)+[0-9]+(,| |.)+[0-9]+$", $c)){ if(eregi(",", $c)) $e = explode(",",$c); else if(eregi(" ", $c)) $e = explode(" ",$c); else if(eregi(".", $c)) $e = explode(".",$c); else return false; if(count($e) != 3) return false; $out = '#'; for($i = 0; $i<3; $i++) $e[$i] = dechex(($e[$i] <= 0)?0:(($e[$i] >= 255)?255:$e[$i])); for($i = 0; $i<3; $i++) $out .= ((strlen($e[$i]) < 2)?'0':'').$e[$i]; $out = strtoupper($out); }else $out = false; return $out; } echo '#FFFFFF => '.rgb2hex2rgb('#FFFFFF').' '; echo '#FFCCEE => '.rgb2hex2rgb('#FFCCEE').' '; echo 'CC22FF => '.rgb2hex2rgb('CC22FF').' '; echo '0 65 255 => '.rgb2hex2rgb('0 65 255').' '; echo '255.150.3 => '.rgb2hex2rgb('255.150.3').' '; echo '100,100,250 => '.rgb2hex2rgb('100,100,250').' '; ?> Output #FFFFFF => Array{ red=>255, green=>255, blue=>255, r=>255, g=>255, b=>255, 0=>255, 1=>255, 2=>255 } #FFCCEE => Array{ red=>255, green=>204, blue=>238, r=>255, g=>204, b=>238, 0=>255, 1=>204, 2=>238 } CC22FF => Array{ red=>204, green=>34, blue=>255, r=>204, g=>34, b=>255, 0=>204, 1=>34, 2=>255 } 0 65 255 => #0041FF 255.150.3 => #FF9603 100,100,250 => #6464FA venk
Reply To Halit Yesil's script: Great Function!! But, there's a problem with your script if the user passes something with three letters/numbers (eg/ #000). You need to use str_repeat to duplicate each character. if($l == 3){ unset($out); $out[0] = $out['r'] = $out['red'] = hexdec(str_repeat(substr($c, 0,1),2)); $out[1] = $out['g'] = $out['green'] = hexdec(str_repeat(substr($c, 1,1),2)); $out[2] = $out['b'] = $out['blue'] = hexdec(str_repeat(substr($c, 2,1),2)); } groobo
It's just a revision to marfastic's ligten_up script, it simply adds/subtracts mod_color to orig_color. I use it often to adjust tonals rather than brightness only <? function mod_color($orig_color, $mod, $mod_color){ /* $orig_color - original html color, hex $mod_color - modifying color, hex $mod - modifier '+' or '-' usage: mod_color('CCCCCC', '+', '000033') */ // does quick validation preg_match("/([0-9]|[A-F]){6}/i",$orig_color,$orig_arr); preg_match("/([0-9]|[A-F]){6}/i",$mod_color,$mod_arr); if ($orig_arr[0] && $mod_arr[0]) { for ($i=0; $i<6; $i=$i+2) { $orig_x = substr($orig_arr[0],$i,2); $mod_x = substr($mod_arr[0],$i,2); if ($mod == '+') { $new_x = hexdec($orig_x) + hexdec($mod_x); } else { $new_x = hexdec($orig_x) - hexdec($mod_x); } if ($new_x < 0) { $new_x = 0; } else if ($new_x > 255) { $new_x = 255; }; $new_x = dechex($new_x); $ret .= $new_x; } return $ret; } else { return false; } } ?> 19-jan-2005 05:33
I wondered long time what is the best way to generate RGB-color from HEX-color, and just now i found the simpliest way! <?php $hex = "FF00FF"; $rgb = hexdec($hex); // 16711935 ?> I hope this will save your time! :) 09-oct-2005 06:53
I needed to get the opposite colors so my website would be soft on the eyes. <?php function OppositeHex($color) { $r = dechex(255 - hexdec(substr($color,0,2))); $r = (strlen($r) > 1) ? $r : '0'.$r; $g = dechex(255 - hexdec(substr($color,2,2))); $g = (strlen($g) > 1) ? $g : '0'.$g; $b = dechex(255 - hexdec(substr($color,4,2))); $b = (strlen($b) > 1) ? $b : '0'.$b; return $r.$g.$b; } //Example $color = '000000'; echo 'The opposite of #'.$color.' is #'.OppositeHex($color).'; ?> detrate
I made this for a little phpbb mod. It was used to take the hex value from the database and make a color 20 (in decimal) less, resulting a darker color. EXAMPLE: #336699 to #1f5285 <?php $row1 = "336699"; // color $c = 20; // difference value $rgb = array(substr($row1,0,2), substr($row1,2,2), substr($row1,4,2)); for($i=0; $i < 3; $i++) { if((hexdec($rgb[$i])-$c) >= 0) { $rgb[$i] = hexdec($rgb[$i])-$c; $rgb[$i] = dechex($rgb[$i]); if(hexdec($rgb[0]) <= 9) $rgb[$i] = "0".$rgb[$i]; } else { $rgb[$i] = "00"; } } $row2 = $rgb[0].$rgb[1].$rgb[2]; ?> joey morwick
I found it helpful to have the inverse / reverse of this function laying around, since I wanted to insert some binary data into an xmlrpc call (it currently craps out when you do that), and I couldn't find one laying around, so here's a simple little function to do that: function hex2bin($str) { $build = ''; while(strlen($str) > 1) { $build .= chr(hexdec(substr($str, 0, 2))); $str = substr($str, 2, strlen($str)-2); } return $build; } chrism
hexdec from 4.1.0 onwards does not show the same size limitation and therefore works differently with large numbers than previous php versions. To obtain the same results, use: (int) hexdec (...) greatwhitepine
Hex to binary conversion that works for large and small hex numbers. <?php function hexbin($str_hex) { $str_bin = FALSE; for ($i=0; $i < strlen($str_hex); $i++) { $str_bin .= sprintf("%04s", decbin(hexdec($str_hex[$i]))); } return $str_bin; } $str_hex = "effffff20df"; print "\n HEX VALUE: $str_hex\n"; printf(" REAL BINARY VALUE: %50s\n", hexbin($str_hex)); printf("CHOPPED BINARY VALUE: %50s\n\n", decbin(hexdec($str_hex))); ?> andreas.schmeiler
Here's another hex2bin variant, works pretty well to me. function hex2bin($hexdata) { for ($i=0;$i<strlen($hexdata);$i+=2) { $bindata.=chr(hexdec(substr($hexdata,$i,2))); } return $bindata; } cgarvis
Here is my version of hex2rgb for web colors to 24bit colors. <?php function hex2rgb_webcolors($hex) { $hex = eregi_replace("[^a-fA-F0-9]", "", $hex); switch( strlen($hex) ) { case 2: $hex = substr($hex,0,2)."0000"; break; case 3: $hex = substr($hex,0,1).substr($hex,0,1) .substr($hex,1,1).substr($hex,1,1) .substr($hex,2,1).substr($hex,2,1); break; case 4: $hex = substr($hex,0,4)."00"; break; case 6: break; default: $hex = 0; break; } return hexdec($hex); } ?> marfastic
Here is a function to brighten up any color: function lighten_up($orig_color, $fraction_denom){ // return the color between the color and white // based on the fraction denom that is passed if(!isset($fraction_denom)) $fraction_denom = 2; $highest_val = hexdec("FF"); $r = hexdec(substr($orig_color,0,2)); $r = ($highest_val-$r)/$fraction_denom + $r; $g = hexdec(substr($orig_color,2,2)); $g = ($highest_val-$g)/$fraction_denom + $g; $b = hexdec(substr($orig_color,4,2)); $b = ($highest_val-$b)/$fraction_denom + $b; return dechex($r) . dechex($g) . dechex($b); } joe
Here is a fast block of code to convert HTML Style HEX colors to RGB: -------------------- $r = hexdec(substr($color, 0, 2)); $g = hexdec(substr($color, 2, 2)); $b = hexdec(substr($color, 4, 2)); -------------------- hope it helps you, enjoy. henrique
Function to convert a string with hexadecimal colors to an associative array with RGB values: <? function hex2dec($hex) { $color = str_replace('#', '', $hex); $ret = array( 'r' => hexdec(substr($color, 0, 2)), 'g' => hexdec(substr($color, 2, 2)), 'b' => hexdec(substr($color, 4, 2)) ); return $ret; } /*** Example: print_r(hex2dec('3D58BE')); or print_r(hex2dec('#3D58BE')); will return Array ( [r] => 61 [g] => 88 [b] => 190 ) ***/ ?> Thanks ! Henrique Recidive lukasz zajonc zajaczkowski
Function converting HEX to signed DEC function hex2sdec ($hex) { //how many bytes $ib = strlen ($hex) - (strlen ($hex) % $hex)) / $hex; if ((strlen ($hex) % 2) > 0) $ib = $ib + 1; //how many bites $ibb = 8 * $ib; //search for -1 value (max_uj) $buf = '1'; for ($i = 1; $i <= $ibb - 1; $i++) { $buf .= '0'; } $max_uj = bindec ($buf); //decide a sign, and calculate a value if (hexdec ($hex) < $max_uj) //+ { $sdec = hexdec ($hex); } else //- { //search for max value + 1 //(for ex. if hex = 23ef then max_p1 = ffff + 1) $buf = ''; for ($i = 1; $i <= $ib; $i++) { $buf .= 'ff'; } $max_p1 = hexdec ($buf) + 1; $sdec = hexdec ($hex) - $max_p1; } return $sdec; } repley
From color to color to ...... to color with fade effect. Good for dynamic bar chart. <?php //MultiColorFade(array hex-colors, int steps) function MultiColorFade($hex_array, $steps) { $tot = count($hex_array); $gradient = array(); $fixend = 2; $passages = $tot-1; $stepsforpassage = floor($steps/$passages); $stepsremain = $steps - ($stepsforpassage*$passages); for($pointer = 0; $pointer < $tot-1 ; $pointer++) { $hexstart = $hex_array[$pointer]; $hexend = $hex_array[$pointer + 1]; if($stepsremain > 0){ if($stepsremain--){ $stepsforthis = $stepsforpassage + 1; } }else{ $stepsforthis = $stepsforpassage; } if($pointer > 0){ $fixend = 1; } $start['r'] = hexdec(substr($hexstart, 0, 2)); $start['g'] = hexdec(substr($hexstart, 2, 2)); $start['b'] = hexdec(substr($hexstart, 4, 2)); $end['r'] = hexdec(substr($hexend, 0, 2)); $end['g'] = hexdec(substr($hexend, 2, 2)); $end['b'] = hexdec(substr($hexend, 4, 2)); $step['r'] = ($start['r'] - $end['r']) / ($stepsforthis); $step['g'] = ($start['g'] - $end['g']) / ($stepsforthis); $step['b'] = ($start['b'] - $end['b']) / ($stepsforthis); for($i = 0; $i <= $stepsforthis-$fixend; $i++) { $rgb['r'] = floor($start['r'] - ($step['r'] * $i)); $rgb['g'] = floor($start['g'] - ($step['g'] * $i)); $rgb['b'] = floor($start['b'] - ($step['b'] * $i)); $hex['r'] = sprintf('%02x', ($rgb['r'])); $hex['g'] = sprintf('%02x', ($rgb['g'])); $hex['b'] = sprintf('%02x', ($rgb['b'])); $gradient[] = strtoupper(implode(NULL, $hex)); } } $gradient[] = $hex_array[$tot-1]; return $gradient; } //end MultiColorFade() //start test $multi_hex_array = array(); $multi_hex_array[] = array('FF0000','FFFF00'); $multi_hex_array[] = array('FF0000','FFFF00','00FF00'); $multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF'); $multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF','0000FF'); $multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF','0000FF','000000'); $multi_hex_array[] = array('FF0000','FFFF00','00FF00','00FFFF','0000FF','000000','FFFFFF'); foreach($multi_hex_array as $hex_array){ $totcolors = count($hex_array); $steps = 44; $a = MultiColorFade($hex_array, $steps); $tot = count($a); $table = '<table border=1 width="300">' . "\n"; for ($i = 0; $i < $tot; $i++){ $table .= ' <tr><td bgcolor="' . $a[$i] . '">' . ($i+1) .'</td><td><pre>' . $a[$i] . '</pre></td></tr>' . "\n"; } $table .= '</table><br /><br />'; echo '<br />Demanded steps = ' . $steps . '<br />'; echo 'Returned steps = ' . $tot; if($steps == $tot){ echo '<br />OK.' . $steps . ' = ' . $tot . '<br />'; }else{ echo '<br /><span style="color:#FF0000">FAILED! Demanded steps and returned steps are NOT equal!: ' . $steps . ' != ' . $tot . '</span><br />'; } echo $table; } //end test ?> Repley. ayadav
From Amit Yadav Hex to binary conversion $num = hexdec("20DF"); echo binfromdec($num); function binfromdec($num) { if ($num > 32766) return ("Too Large!"); if ($num & 16384) $bit15 = 1; if ($num & 8192) $bit14 = 1; if ($num & 4096) $bit13 = 1; if ($num & 2048) $bit12 = 1; if ($num & 1024) $bit11 = 1; if ($num & 512) $bit10 = 1; if ($num & 256) $bit9 = 1; if ($num & 128) $bit8 = 1; if ($num & 64) $bit7 = 1; if ($num & 32) $bit6 = 1; if ($num & 16) $bit5 = 1; if ($num & 8) $bit4 = 1; if ($num & 4) $bit3 = 1; if ($num & 2) $bit2 = 1; if ($num & 1) $bit1 = 1; return ("" . $bit15 . $bit14 . $bit13 . $bit12 . $bit11 . $bit10 . $bit9 . $bit8 . $bit7 . $bit6 . $bit5 . $bit4 . $bit3 . $bit2 . $bit1); } andychase
For hex numbers larger than 7FFFFFFF (E.G. PalmOS dates in seconds elapsed since 01/01/1904), I came up with this: function bighexdec($hexnumber){ $numlength = strlen($hexnumber); $decnumber = 0; for($x = 1; $x <= $numlength; $x++){ $place = $numlength - $x; $operand = hexdec(substr($hexnumber,$place,1)); $exponent = pow(16,$x-1); $decValue = $operand * $exponent; $decnumber += $decValue; } return $decnumber; } _meto alt+q web.de
Damn, this took me some real long time! Maybe it's helpfull for those who even have no idea of color-Schemes like me ;) If u want to generate PDF's for Print Offices u need to set all the colors in CMYK. Here is a Function that will convert RGB to CMYK <? function hex2rgb($hex) { $color = str_replace('#','',$hex); $rgb = array('r' => hexdec(substr($color,0,2)), 'g' => hexdec(substr($color,2,2)), 'b' => hexdec(substr($color,4,2))); return $rgb; } function rgb2cmyk($var1,$g=0,$b=0) { if(is_array($var1)) { $r = $var1['r']; $g = $var1['g']; $b = $var1['b']; } else $r=$var1; $cyan = 255 - $r; $magenta = 255 - $g; $yellow = 255 - $b; $black = min($cyan, $magenta, $yellow); $cyan = @(($cyan - $black) / (255 - $black)) * 255; $magenta = @(($magenta - $black) / (255 - $black)) * 255; $yellow = @(($yellow - $black) / (255 - $black)) * 255; return array('c' => $cyan / 255, 'm' => $magenta / 255, 'y' => $yellow / 255, 'k' => $black / 255); } $color=rgb2cmyk(hex2rgb('#FF0000')); pdf_setcolor($pdf, "both", "cmyk", $color['c'], $color['m'], $color['y'], $color['k']); ?> U can call it with parameters (r,g,b) or just with an array(r,g,b) that contains these values. Hope it works correct. All testing was fine. bishop
Bullet-proof hex-to-rgb colour converter like brian at sagesport dot com wanted, just far fewer code lines. As a bonus, gives you the ability to return as string or array: <?php function &hex2rgb($hex, $asString = true) { // strip off any leading # if (0 === strpos($hex, '#')) { $hex = substr($hex, 1); } else if (0 === strpos($hex, '&H')) { $hex = substr($hex, 2); } // break into hex 3-tuple $cutpoint = ceil(strlen($hex) / 2)-1; $rgb = explode(':', wordwrap($hex, $cutpoint, ':', $cutpoint), 3); // convert each tuple to decimal $rgb[0] = (isset($rgb[0]) ? hexdec($rgb[0]) : 0); $rgb[1] = (isset($rgb[1]) ? hexdec($rgb[1]) : 0); $rgb[2] = (isset($rgb[2]) ? hexdec($rgb[2]) : 0); return ($asString ? "{$rgb[0]} {$rgb[1]} {$rgb[2]}" : $rgb); } ?> Handles 2, 3, and 6 character colour codes with leading # or &H. gelado
Another hex to decimal converter, up to the precision of PHP floats. function longhex($hex) { $dec = 0; $bitval = 1; for($pos = 1; $pos <= strlen($hex); $pos++) { $dec += hexdec(substr($hex, -$pos, 1)) * $bitval; $bitval *= 16; } return($dec); } gabriel reguly
After esnhexdec from "rledger at gmail dot com", the esndechex: <?php function esndechex($dec){ $a = strtoupper(dechex(substr($dec, 1, 2))); $b = strtoupper(dechex(substr($dec, 3, 10))); return $a . $b; } ?> cory
A handy little function to convert HEX colour codes to "web safe" colours... <?php function color_mkwebsafe ( $in ) { // put values into an easy-to-use array $vals['r'] = hexdec( substr($in, 0, 2) ); $vals['g'] = hexdec( substr($in, 2, 2) ); $vals['b'] = hexdec( substr($in, 4, 2) ); // loop through foreach( $vals as $val ) { // convert value $val = ( round($val/51) * 51 ); // convert to HEX $out .= str_pad(dechex($val), 2, '0', STR_PAD_LEFT); } return $out; } ?> Example: color_mkwebsafe('0e5c94'); Produces: 006699 Hope this helps someone out... Happy coding. :-) k10206
<? function hexrgb($hexstr) { $int = hexdec($hexstr); return array("red" => 0xFF & ($int >> 0x10), "green" => 0xFF & ($int >> 0x8), "blue" => 0xFF & $int); } ?> |