@@ -894,6 +894,8 @@ ZEND_END_ARG_INFO()
894
894
ZEND_BEGIN_ARG_INFO (arginfo_imagecropauto , 0 )
895
895
ZEND_ARG_INFO (0 , im )
896
896
ZEND_ARG_INFO (0 , mode )
897
+ ZEND_ARG_INFO (0 , threshold )
898
+ ZEND_ARG_INFO (0 , color )
897
899
ZEND_END_ARG_INFO ()
898
900
#endif
899
901
@@ -1216,6 +1218,7 @@ PHP_MINIT_FUNCTION(gd)
1216
1218
REGISTER_LONG_CONSTANT ("IMG_CROP_BLACK" , GD_CROP_BLACK , CONST_CS | CONST_PERSISTENT );
1217
1219
REGISTER_LONG_CONSTANT ("IMG_CROP_WHITE" , GD_CROP_WHITE , CONST_CS | CONST_PERSISTENT );
1218
1220
REGISTER_LONG_CONSTANT ("IMG_CROP_SIDES" , GD_CROP_SIDES , CONST_CS | CONST_PERSISTENT );
1221
+ REGISTER_LONG_CONSTANT ("IMG_CROP_THRESHOLD" , GD_CROP_THRESHOLD , CONST_CS | CONST_PERSISTENT );
1219
1222
#else
1220
1223
REGISTER_LONG_CONSTANT ("GD_BUNDLED" , 0 , CONST_CS | CONST_PERSISTENT );
1221
1224
#endif
@@ -5145,10 +5148,12 @@ PHP_FUNCTION(imagecropauto)
5145
5148
{
5146
5149
zval * IM ;
5147
5150
long mode = -1 ;
5151
+ long color = -1 ;
5152
+ double threshold = 0.5f ;
5148
5153
gdImagePtr im ;
5149
5154
gdImagePtr im_crop ;
5150
5155
5151
- if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "r|l " , & IM , & mode ) == FAILURE ) {
5156
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "r|ldl " , & IM , & mode , & threshold , & color ) == FAILURE ) {
5152
5157
return ;
5153
5158
}
5154
5159
@@ -5164,6 +5169,15 @@ PHP_FUNCTION(imagecropauto)
5164
5169
case GD_CROP_SIDES :
5165
5170
im_crop = gdImageCropAuto (im , mode );
5166
5171
break ;
5172
+
5173
+ case GD_CROP_THRESHOLD :
5174
+ if (color < 0 ) {
5175
+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "Color argument missing with threshold mode" );
5176
+ RETURN_FALSE ;
5177
+ }
5178
+ im_crop = gdImageCropThreshold (im , color , (float ) threshold );
5179
+ break ;
5180
+
5167
5181
default :
5168
5182
php_error_docref (NULL TSRMLS_CC , E_WARNING , "Unknown flip mode ");
5169
5183
RETURN_FALSE ;
0 commit comments