Commit:    0c32a18d4c9995fe101484eef46e292a51543b68
Author:    Pierre Joye <pierre....@gmail.com>         Thu, 28 Feb 2013 19:22:06 
+0100
Parents:   a991360344ed5bca7c20f74a10891d0fc52f0c9f
Branches:  master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=0c32a18d4c9995fe101484eef46e292a51543b68

Log:
- clean and enable threshold

Changed paths:
  M  ext/gd/gd.c
  M  ext/gd/libgd/gd.h
  M  ext/gd/libgd/gd_crop.c


Diff:
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index 83733d1..c004a72 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -894,6 +894,8 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_INFO(arginfo_imagecropauto, 0)
        ZEND_ARG_INFO(0, im)
        ZEND_ARG_INFO(0, mode)
+       ZEND_ARG_INFO(0, threshold)
+       ZEND_ARG_INFO(0, color)
 ZEND_END_ARG_INFO()
 #endif
 
@@ -1216,6 +1218,7 @@ PHP_MINIT_FUNCTION(gd)
        REGISTER_LONG_CONSTANT("IMG_CROP_BLACK", GD_CROP_BLACK, CONST_CS | 
CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_CROP_WHITE", GD_CROP_WHITE, CONST_CS | 
CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_CROP_SIDES", GD_CROP_SIDES, CONST_CS | 
CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_CROP_THRESHOLD", GD_CROP_THRESHOLD, 
CONST_CS | CONST_PERSISTENT);
 #else
        REGISTER_LONG_CONSTANT("GD_BUNDLED", 0, CONST_CS | CONST_PERSISTENT);
 #endif
@@ -5145,10 +5148,12 @@ PHP_FUNCTION(imagecropauto)
 {
        zval *IM;
        long mode = -1;
+       long color = -1;
+       double threshold = 0.5f;
        gdImagePtr im;
        gdImagePtr im_crop;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|l", &IM, &mode) 
== FAILURE)  {
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r|ldl", &IM, 
&mode, &threshold, &color) == FAILURE)  {
                return;
        }
 
@@ -5164,6 +5169,15 @@ PHP_FUNCTION(imagecropauto)
                case GD_CROP_SIDES:
                        im_crop = gdImageCropAuto(im, mode);
                        break;
+
+               case GD_CROP_THRESHOLD:
+                       if (color < 0) {
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, 
"Color argument missing with threshold mode");
+                               RETURN_FALSE;
+                       }
+                       im_crop = gdImageCropThreshold(im, color, (float) 
threshold);
+                       break;
+
                default:
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unknown 
flip mode");
                        RETURN_FALSE;
diff --git a/ext/gd/libgd/gd.h b/ext/gd/libgd/gd.h
index adef026..8d9df2a 100644
--- a/ext/gd/libgd/gd.h
+++ b/ext/gd/libgd/gd.h
@@ -733,7 +733,8 @@ enum gdCropMode {
        GD_CROP_TRANSPARENT,
        GD_CROP_BLACK,
        GD_CROP_WHITE,
-       GD_CROP_SIDES
+       GD_CROP_SIDES,
+       GD_CROP_THRESHOLD
 };
 
 gdImagePtr gdImageCrop(gdImagePtr src, const gdRectPtr crop);
diff --git a/ext/gd/libgd/gd_crop.c b/ext/gd/libgd/gd_crop.c
index d5fd762..274e719 100644
--- a/ext/gd/libgd/gd_crop.c
+++ b/ext/gd/libgd/gd_crop.c
@@ -58,7 +58,7 @@ gdImagePtr gdImageCrop(gdImagePtr src, const gdRectPtr crop)
        if (src->sy < (crop->y + crop->height -1)) {
                crop->height = src->sy - crop->y + 1;
        }
-#ifdef 0
+#if 0
 printf("rect->x: %i\nrect->y: %i\nrect->width: %i\nrect->height: %i\n", 
crop->x, crop->y, crop->width, crop->height);
 #endif
        if (dst == NULL) {


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to