cvs: php-src / NEWS /ext/gd gd.c php_gd.h
| From: | Hartmut Holzgraefe | Date: | Sun, 05 Mar 2006 18:23:48 +0000 |
| Subject: | cvs: php-src / NEWS /ext/gd gd.c php_gd.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-37129@lists.php.net to get a copy of this message | ||
hholzgra Sun Mar 5 18:23:48 2006 UTC
Modified files:
/php-src NEWS
/php-src/ext/gd gd.c php_gd.h
Log:
added ImageColorHistogram function
http://cvs.php.net/viewcvs.cgi/php-src/NEWS?r1=1.2091&r2=1.2092&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2091 php-src/NEWS:1.2092
--- php-src/NEWS:1.2091 Fri Mar 3 13:09:13 2006
+++ php-src/NEWS Sun Mar 5 18:23:47 2006
@@ -30,3 +30,4 @@
- Added possibility to check in which extension an internal function was
defined using reflection API. (Johannes)
- Fixed bug #34286 (__toString() behavior is inconsistent). (Marcus)
+- Added ImageColorHistogram() to gd extension. (Hartmut)
http://cvs.php.net/viewcvs.cgi/php-src/ext/gd/gd.c?r1=1.345&r2=1.346&diff_format=u
Index: php-src/ext/gd/gd.c
diff -u php-src/ext/gd/gd.c:1.345 php-src/ext/gd/gd.c:1.346
--- php-src/ext/gd/gd.c:1.345 Sun Feb 19 04:29:40 2006
+++ php-src/ext/gd/gd.c Sun Mar 5 18:23:47 2006
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: gd.c,v 1.345 2006/02/19 04:29:40 andi Exp $ */
+/* $Id: gd.c,v 1.346 2006/03/05 18:23:47 hholzgra Exp $ */
/* gd 1.2 is copyright 1994, 1995, Quest Protein Database Center,
Cold Spring Harbor Labs. */
@@ -144,6 +144,7 @@
PHP_FE(imagechar, NULL)
PHP_FE(imagecharup, NULL)
PHP_FE(imagecolorat, NULL)
+ PHP_FE(imagecolorhistogram, NULL)
PHP_FE(imagecolorallocate, NULL)
PHP_FE(imagepalettecopy, NULL)
PHP_FE(imagecreatefromstring, NULL)
@@ -2349,6 +2350,53 @@
}
/* }}} */
+/* {{{ proto array imagecolorhistogram(resource im)
+ Return color histogram for an image */
+PHP_FUNCTION(imagecolorhistogram)
+{
+ zval **IM;
+ gdImagePtr im;
+ int num_colors, x, y, n;
+ long *color_count;
+
+ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &IM) == FAILURE) {
+ ZEND_WRONG_PARAM_COUNT();
+ }
+
+ ZEND_FETCH_RESOURCE(im, gdImagePtr, IM, -1, "Image", le_gd);
+
+ if (!im->pixels) {
+ RETURN_FALSE;
+ }
+
+ num_colors = gdImageColorsTotal(im);
+
+ if (num_colors <= 0) {
+ RETURN_FALSE;
+ }
+
+ color_count = (long *)calloc(num_colors, sizeof(long));
+
+ for (x = 0; x < gdImageSX(im); x++) {
+ for (y = 0; y < gdImageSY(im); y++) {
+#if HAVE_LIBGD13
+ color_count[im->pixels[y][x]]++;
+#else
+ color_count[im->pixels[x][y]]++;
+#endif
+ }
+ }
+
+ array_init(return_value);
+
+ for (n = 0; n < num_colors; n++) {
+ add_index_long(return_value, n, color_count[n]);
+ }
+
+ efree(color_count);
+}
+/* }}} */
+
/* {{{ proto int imagecolortransparent(resource im [, int col])
Define a color as transparent */
PHP_FUNCTION(imagecolortransparent)
http://cvs.php.net/viewcvs.cgi/php-src/ext/gd/php_gd.h?r1=1.66&r2=1.67&diff_format=u
Index: php-src/ext/gd/php_gd.h
diff -u php-src/ext/gd/php_gd.h:1.66 php-src/ext/gd/php_gd.h:1.67
--- php-src/ext/gd/php_gd.h:1.66 Sun Feb 19 05:05:42 2006
+++ php-src/ext/gd/php_gd.h Sun Mar 5 18:23:47 2006
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_gd.h,v 1.66 2006/02/19 05:05:42 andi Exp $ */
+/* $Id: php_gd.h,v 1.67 2006/03/05 18:23:47 hholzgra Exp $ */
#ifndef PHP_GD_H
#define PHP_GD_H
@@ -86,6 +86,7 @@
PHP_FUNCTION(imagecolorset);
PHP_FUNCTION(imagecolorstotal);
PHP_FUNCTION(imagecolorsforindex);
+PHP_FUNCTION(imagecolorhistogram);
PHP_FUNCTION(imagecolortransparent);
PHP_FUNCTION(imagecopy);
PHP_FUNCTION(imagecopymerge);