@@ -890,6 +890,11 @@ ZEND_BEGIN_ARG_INFO(arginfo_imageflip, 0)
890
890
ZEND_ARG_INFO (0 , im )
891
891
ZEND_ARG_INFO (0 , mode )
892
892
ZEND_END_ARG_INFO ()
893
+
894
+ ZEND_BEGIN_ARG_INFO (arginfo_imagecropauto , 0 )
895
+ ZEND_ARG_INFO (0 , im )
896
+ ZEND_ARG_INFO (0 , mode )
897
+ ZEND_END_ARG_INFO ()
893
898
#endif
894
899
895
900
/* }}} */
@@ -950,6 +955,7 @@ const zend_function_entry gd_functions[] = {
950
955
#ifdef HAVE_GD_BUNDLED
951
956
PHP_FE (imageantialias , arginfo_imageantialias )
952
957
PHP_FE (imageflip , arginfo_imageflip )
958
+ PHP_FE (imagecropauto , arginfo_imagecropauto )
953
959
#endif
954
960
955
961
#if HAVE_GD_IMAGESETTILE
@@ -1204,6 +1210,12 @@ PHP_MINIT_FUNCTION(gd)
1204
1210
REGISTER_LONG_CONSTANT ("IMG_FLIP_HORIZONTAL" , GD_FLIP_HORINZONTAL , CONST_CS | CONST_PERSISTENT );
1205
1211
REGISTER_LONG_CONSTANT ("IMG_FLIP_VERTICAL" , GD_FLIP_VERTICAL , CONST_CS | CONST_PERSISTENT );
1206
1212
REGISTER_LONG_CONSTANT ("IMG_FLIP_BOTH" , GD_FLIP_BOTH , CONST_CS | CONST_PERSISTENT );
1213
+
1214
+ REGISTER_LONG_CONSTANT ("IMG_CROP_DEFAULT" , GD_CROP_DEFAULT , CONST_CS | CONST_PERSISTENT );
1215
+ REGISTER_LONG_CONSTANT ("IMG_CROP_TRANSPARENT" , GD_CROP_TRANSPARENT , CONST_CS | CONST_PERSISTENT );
1216
+ REGISTER_LONG_CONSTANT ("IMG_CROP_BLACK" , GD_CROP_BLACK , CONST_CS | CONST_PERSISTENT );
1217
+ REGISTER_LONG_CONSTANT ("IMG_CROP_WHITE" , GD_CROP_WHITE , CONST_CS | CONST_PERSISTENT );
1218
+ REGISTER_LONG_CONSTANT ("IMG_CROP_SIDES" , GD_CROP_SIDES , CONST_CS | CONST_PERSISTENT );
1207
1219
#else
1208
1220
REGISTER_LONG_CONSTANT ("GD_BUNDLED" , 0 , CONST_CS | CONST_PERSISTENT );
1209
1221
#endif
@@ -5125,6 +5137,44 @@ PHP_FUNCTION(imageflip)
5125
5137
RETURN_TRUE ;
5126
5138
}
5127
5139
/* }}} */
5140
+
5141
+
5142
+ /* {{{ proto void imageflip(resource im, int mode)
5143
+ Flip an image (in place) horizontally, vertically or both directions. */
5144
+ PHP_FUNCTION (imagecropauto )
5145
+ {
5146
+ zval * IM ;
5147
+ long mode = -1 ;
5148
+ gdImagePtr im ;
5149
+ gdImagePtr im_crop ;
5150
+
5151
+ if (zend_parse_parameters (ZEND_NUM_ARGS () TSRMLS_CC , "r|l" , & IM , & mode ) == FAILURE ) {
5152
+ return ;
5153
+ }
5154
+
5155
+ ZEND_FETCH_RESOURCE (im , gdImagePtr , & IM , -1 , "Image" , le_gd );
5156
+
5157
+ switch (mode ) {
5158
+ case -1 :
5159
+ mode = GD_CROP_DEFAULT ;
5160
+ case GD_CROP_DEFAULT :
5161
+ case GD_CROP_TRANSPARENT :
5162
+ case GD_CROP_BLACK :
5163
+ case GD_CROP_WHITE :
5164
+ case GD_CROP_SIDES :
5165
+ im_crop = gdImageCropAuto (im , mode );
5166
+ break ;
5167
+ default :
5168
+ php_error_docref (NULL TSRMLS_CC , E_WARNING , "Unknown flip mode ");
5169
+ RETURN_FALSE ;
5170
+ }
5171
+ if (im_crop == NULL ) {
5172
+ RETURN_FALSE ;
5173
+ } else {
5174
+ ZEND_REGISTER_RESOURCE (return_value , im_crop , le_gd );
5175
+ }
5176
+ }
5177
+ /* }}} */
5128
5178
#endif
5129
5179
5130
5180
0 commit comments