diff options
author | Phil Sturgeon <email@philsturgeon.co.uk> | 2012-01-01 21:00:14 +0100 |
---|---|---|
committer | Phil Sturgeon <email@philsturgeon.co.uk> | 2012-01-01 21:00:14 +0100 |
commit | fe35865334b682c41757cde805635a0bb9e562c4 (patch) | |
tree | 7002539215a17e8277c3d5c87404e8b020238d35 | |
parent | 719ac70845b096e3939aa8d8e3cd9806fdb53b85 (diff) | |
parent | cf2ba9ee5fc50b8411eba46ddd73c59b66524fea (diff) |
Merge pull request #849 from narfbg/develop-image-lib-fix
Fix a bug and put some comments describing changes from pull #818
-rw-r--r-- | system/libraries/Image_lib.php | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php index 7beac0ba0..fe9b8dc79 100644 --- a/system/libraries/Image_lib.php +++ b/system/libraries/Image_lib.php @@ -169,8 +169,17 @@ class CI_Image_lib { { if (in_array($key, array('wm_font_color', 'wm_shadow_color'))) { - if ($val != '' AND preg_match('/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i', $val, $matches)) + if (preg_match('/^#?([0-9a-f]{3}|[0-9a-f]{6})$/i', $val, $matches)) { + /* $matches[1] contains our hex color value, but it might be + * both in the full 6-length format or the shortened 3-length + * value. + * We'll later need the full version, so we keep it if it's + * already there and if not - we'll convert to it. We can + * access string characters by their index as in an array, + * so we'll do that and use concatenation to form the final + * value: + */ $val = (strlen($matches[1]) === 6) ? '#'.$matches[1] : '#'.$matches[1][0].$matches[1][0].$matches[1][1].$matches[1][1].$matches[1][2].$matches[1][2]; @@ -1073,10 +1082,15 @@ class CI_Image_lib { if ($this->wm_use_drop_shadow) { - // Set RGB values for text and shadow - $txt_color = str_split(substr($this->wm_font_color, 1, 6)); + /* Set RGB values for text and shadow + * + * First character is #, so we don't really need it. + * Get the rest of the string and split it into 2-length + * hex values: + */ + $txt_color = str_split(substr($this->wm_font_color, 1, 6), 2); $txt_color = imagecolorclosest($src_img, hexdec($txt_color[0]), hexdec($txt_color[1]), hexdec($txt_color[2])); - $drp_color = str_split(substr($this->wm_shadow_color, 1, 6)); + $drp_color = str_split(substr($this->wm_shadow_color, 1, 6), 2); $drp_color = imagecolorclosest($src_img, hexdec($drp_color[0]), hexdec($drp_color[2]), hexdec($drp_color[3])); // Add the text to the source image |