Posted By

Jacolyte on 09/09/08


Tagged

wrapper php RGB imagecolorallocate hexidecimal


Versions (?)

imgcolorallocate wrapper that allows hex values instead of RGB


 / Published in: PHP
 

URL: http://jacolyte.com

This function will allow you to use '#ABCDEF' or '0xEEFF33' instead of the RGB values required for imagecolorallocate() by stripping away any non hex characters. It will also check and make sure that it's a valid 6 digit hex value after the stripping of non-hex characters takes place.

it simply uses the function hexdec() to convert each R, G, and B hex values to decimal, and then passes them to imagecolorallocate() individually.

See the page: http://us3.php.net/imagecolorallocate to learn how to use this wrapper function.

  1. function img_colorallocate($img, $color) {
  2. // strip away any non hex characters, to allow flexibility with the function
  3. $color = ereg_replace('[^A-Fa-f0-9]|(0x)|(0X)', '', $color);
  4. if ( strlen($color) != 6 || !preg_match('/[0-9a-fA-F]{6}/', $color) ) {
  5. die("The value provided does not contain a valid 6 digit hex value.");
  6. }
  7. $color = imagecolorallocate(
  8. $img,
  9. hexdec($color[0] . $color[1]),
  10. hexdec($color[2] . $color[3]),
  11. hexdec($color[4] . $color[5])
  12. );
  13. return $color;
  14. }

Report this snippet  

You need to login to post a comment.