changed overlay_watermark() to check for an alpha value before applying the image to help support PNG-24s with alpha transparency

http://codeigniter.com/bug_tracker/bug/4506/
diff --git a/system/libraries/Image_lib.php b/system/libraries/Image_lib.php
index 0750b64..4017afb 100644
--- a/system/libraries/Image_lib.php
+++ b/system/libraries/Image_lib.php
@@ -943,10 +943,23 @@
 		{

 			@imagealphablending($src_img, TRUE);

 		} 		

-

-		// Set RGB values for text and shadow		

-		imagecolortransparent($wm_img, imagecolorat($wm_img, $this->wm_x_transp, $this->wm_y_transp));

-		imagecopymerge($src_img, $wm_img, $x_axis, $y_axis, 0, 0, $wm_width, $wm_height, $this->wm_opacity);

+		

+		// Set RGB values for text and shadow

+		$rgba = imagecolorat($wm_img, $this->wm_x_transp, $this->wm_y_transp);

+		$alpha = ($rgba & 0x7F000000) >> 24;

+		

+		// make a best guess as to whether we're dealing with an image with alpha transparency or no/binary transparency

+		if ($alpha > 0)

+		{

+			// copy the image directly, the image's alpha transparency being the sole determinant of blending

+			imagecopy($src_img, $wm_img, $x_axis, $y_axis, 0, 0, $wm_width, $wm_height);

+		}

+		else

+		{

+			// set our RGB value from above to be transparent and merge the images with the specified opacity

+			imagecolortransparent($wm_img, imagecolorat($wm_img, $this->wm_x_transp, $this->wm_y_transp));

+			imagecopymerge($src_img, $wm_img, $x_axis, $y_axis, 0, 0, $wm_width, $wm_height, $this->wm_opacity);			

+		}

 				

 		//  Output the image

 		if ($this->dynamic_output == TRUE)

@@ -1533,6 +1546,6 @@
 

 }

 // END Image_lib Class

-
-/* End of file Image_lib.php */
+

+/* End of file Image_lib.php */

 /* Location: ./system/libraries/Image_lib.php */
\ No newline at end of file