pajoye Tue Sep 11 21:03:48 2007 UTC Modified files: (Branch: PHP_5_2) /php-src NEWS /php-src/ext/gd gd.c /php-src/ext/gd/libgd gd.c Log: - [DOC] add alpha support for imagefilter's IMG_FILTER_COLORIZE http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.940&r2=1.2027.2.547.2.941&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.940 php-src/NEWS:1.2027.2.547.2.941 --- php-src/NEWS:1.2027.2.547.2.940 Mon Sep 10 23:42:54 2007 +++ php-src/NEWS Tue Sep 11 21:03:47 2007 @@ -11,6 +11,7 @@ - Upgraded PCRE to version 7.3 (Nuno) - Added optional parameter $provide_object to debug_backtrace(). (Sebastian) +- Added alpha support for imagefilter's IMG_FILTER_COLORIZE - Fixed Bug #42596 (session.save_path MODE option does not work). (Ilia) - Fixed bug #42590 (Make the engine recornize \v and \f escape sequences). http://cvs.php.net/viewvc.cgi/php-src/ext/gd/gd.c?r1=1.312.2.20.2.31&r2=1.312.2.20.2.32&diff_format=u Index: php-src/ext/gd/gd.c diff -u php-src/ext/gd/gd.c:1.312.2.20.2.31 php-src/ext/gd/gd.c:1.312.2.20.2.32 --- php-src/ext/gd/gd.c:1.312.2.20.2.31 Wed Aug 29 06:26:30 2007 +++ php-src/ext/gd/gd.c Tue Sep 11 21:03:48 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: gd.c,v 1.312.2.20.2.31 2007/08/29 06:26:30 pajoye Exp $ */ +/* $Id: gd.c,v 1.312.2.20.2.32 2007/09/11 21:03:48 pajoye Exp $ */ /* gd 1.2 is copyright 1994, 1995, Quest Protein Database Center, Cold Spring Harbor Labs. */ @@ -5178,8 +5178,9 @@ zval *SIM; gdImagePtr im_src; long r,g,b,tmp; + long a = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllll", &SIM, &tmp, &r, &g, &b) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rllll|l", &SIM, &tmp, &r, &g, &b, &a) == FAILURE) { RETURN_FALSE; } @@ -5189,7 +5190,7 @@ RETURN_FALSE; } - if (gdImageColor(im_src, (int) r, (int) g, (int) b) == 1) { + if (gdImageColor(im_src, (int) r, (int) g, (int) b, (int) a) == 1) { RETURN_TRUE; } @@ -5298,7 +5299,7 @@ php_image_filter_smooth }; - if (ZEND_NUM_ARGS() < 2 || ZEND_NUM_ARGS() > 5) { + if (ZEND_NUM_ARGS() < 2 || ZEND_NUM_ARGS() > 6) { WRONG_PARAM_COUNT; } else if (zend_parse_parameters(2 TSRMLS_CC, "rl", &tmp, &filtertype) == FAILURE) { return; http://cvs.php.net/viewvc.cgi/php-src/ext/gd/libgd/gd.c?r1=1.90.2.1.2.20&r2=1.90.2.1.2.21&diff_format=u Index: php-src/ext/gd/libgd/gd.c diff -u php-src/ext/gd/libgd/gd.c:1.90.2.1.2.20 php-src/ext/gd/libgd/gd.c:1.90.2.1.2.21 --- php-src/ext/gd/libgd/gd.c:1.90.2.1.2.20 Sun Sep 9 13:05:51 2007 +++ php-src/ext/gd/libgd/gd.c Tue Sep 11 21:03:48 2007 @@ -3807,15 +3807,14 @@ } -int gdImageColor(gdImagePtr src, int red, int green, int blue) +int gdImageColor(gdImagePtr src, const int red, const int green, const int blue, const int alpha) { int x, y; - int r,g,b,a; int new_pxl, pxl; typedef int (*FuncPtr)(gdImagePtr, int, int); FuncPtr f; - if (src==NULL || (red<-255||red>255) || (green<-255||green>255) || (blue<-255||blue>255)) { + if (src == NULL) { return 0; } @@ -3823,6 +3822,8 @@ for (y=0; y<src->sy; ++y) { for (x=0; x<src->sx; ++x) { + int r,g,b,a; + pxl = f(src, x, y); r = gdImageRed(src, pxl); g = gdImageGreen(src, pxl); @@ -3832,14 +3833,16 @@ r = r + red; g = g + green; b = b + blue; + a = a + alpha; - r = (r > 255)? 255 : ((r < 0)? 0:r); - g = (g > 255)? 255 : ((g < 0)? 0:g); - b = (b > 255)? 255 : ((b < 0)? 0:b); + r = (r > 255)? 255 : ((r < 0)? 0 : r); + g = (g > 255)? 255 : ((g < 0)? 0 : g); + b = (b > 255)? 255 : ((b < 0)? 0 : b); + a = (a > 127)? 127 : ((a < 0)? 0 : a); - new_pxl = gdImageColorAllocateAlpha(src, (int)r, (int)g, (int)b, a); + new_pxl = gdImageColorAllocateAlpha(src, r, g, b, a); if (new_pxl == -1) { - new_pxl = gdImageColorClosestAlpha(src, (int)r, (int)g, (int)b, a); + new_pxl = gdImageColorClosestAlpha(src, r, g, b, a); } gdImageSetPixel (src, x, y, new_pxl); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php