com php-src: gd: provide imageflip with system libgd when available: ext/gd/config.m4 ext/gd/gd.c
| From: | Remi Collet | Date: | Wed, 24 Apr 2013 12:32:03 +0000 |
| Subject: | com php-src: gd: provide imageflip with system libgd when available: ext/gd/config.m4 ext/gd/gd.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-72002@lists.php.net to get a copy of this message | ||
Commit: aa4b0af20f61f8d1642168258c37a78b5adf1329
Author: Remi Collet <remi@php.net> Wed, 24 Apr 2013 14:32:03 +0200
Parents: ee65e6953f10c6e4d0e6e118ba53aebfe836302b
Branches: PHP-5.5 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=aa4b0af20f61f8d1642168258c37a78b5adf1329
Log:
gd: provide imageflip with system libgd when available
Changed paths:
M ext/gd/config.m4
M ext/gd/gd.c
Diff:
diff --git a/ext/gd/config.m4 b/ext/gd/config.m4
index c7a253c..e27411d 100644
--- a/ext/gd/config.m4
+++ b/ext/gd/config..m4
@@ -286,6 +286,7 @@ AC_DEFUN([PHP_GD_CHECK_VERSION],[
PHP_CHECK_LIBRARY(gd, gdNewDynamicCtxEx, [AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX, 1, [ ])], [],
[ -L$GD_LIB $GD_SHARED_LIBADD ])
PHP_CHECK_LIBRARY(gd, gdImageConvolution, [AC_DEFINE(HAVE_GD_IMAGE_CONVOLUTION, 1, [
])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
PHP_CHECK_LIBRARY(gd, gdImagePixelate, [AC_DEFINE(HAVE_GD_IMAGE_PIXELATE, 1, [
])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
+ PHP_CHECK_LIBRARY(gd, gdImageFlipBoth, [AC_DEFINE(HAVE_GD_IMAGE_FLIP, 1, [ ])], [],
[ -L$GD_LIB $GD_SHARED_LIBADD ])
])
dnl
@@ -342,6 +343,7 @@ dnl These are always available with bundled library
AC_DEFINE(HAVE_GD_FONTMUTEX, 1, [ ])
AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX, 1, [ ])
AC_DEFINE(HAVE_GD_GIF_CTX, 1, [ ])
+ AC_DEFINE(HAVE_GD_IMAGE_FLIP, 1, [ ])
dnl Make sure the libgd/ is first in the include path
GDLIB_CFLAGS="-DHAVE_LIBPNG"
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index b60891b..ea289e7 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -883,15 +883,17 @@ ZEND_BEGIN_ARG_INFO(arginfo_imageconvolution, 0)
ZEND_ARG_INFO(0, offset)
ZEND_END_ARG_INFO()
-#ifdef HAVE_GD_BUNDLED
-ZEND_BEGIN_ARG_INFO(arginfo_imageantialias, 0)
+#ifdef HAVE_GD_IMAGE_FLIP
+ZEND_BEGIN_ARG_INFO(arginfo_imageflip, 0)
ZEND_ARG_INFO(0, im)
- ZEND_ARG_INFO(0, on)
+ ZEND_ARG_INFO(0, mode)
ZEND_END_ARG_INFO()
+#endif
-ZEND_BEGIN_ARG_INFO(arginfo_imageflip, 0)
+#ifdef HAVE_GD_BUNDLED
+ZEND_BEGIN_ARG_INFO(arginfo_imageantialias, 0)
ZEND_ARG_INFO(0, im)
- ZEND_ARG_INFO(0, mode)
+ ZEND_ARG_INFO(0, on)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(arginfo_imagecrop, 0)
@@ -992,9 +994,12 @@ const zend_function_entry gd_functions[] = {
PHP_FE(imagerotate, arginfo_imagerotate)
+#ifdef HAVE_GD_IMAGE_FLIP
+ PHP_FE(imageflip, arginfo_imageflip)
+#endif
+
#ifdef HAVE_GD_BUNDLED
PHP_FE(imageantialias, arginfo_imageantialias)
- PHP_FE(imageflip, arginfo_imageflip)
PHP_FE(imagecrop, arginfo_imagecrop)
PHP_FE(imagecropauto, arginfo_imagecropauto)
PHP_FE(imagescale, arginfo_imagescale)
@@ -1246,6 +1251,11 @@ PHP_MINIT_FUNCTION(gd)
#ifdef GD2_FMT_COMPRESSED
REGISTER_LONG_CONSTANT("IMG_GD2_COMPRESSED", GD2_FMT_COMPRESSED, CONST_CS |
CONST_PERSISTENT);
#endif
+#ifdef HAVE_GD_IMAGE_FLIP
+ REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", GD_FLIP_HORINZONTAL, CONST_CS |
CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("IMG_FLIP_VERTICAL", GD_FLIP_VERTICAL, CONST_CS |
CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("IMG_FLIP_BOTH", GD_FLIP_BOTH, CONST_CS | CONST_PERSISTENT);
+#endif
#if HAVE_GD_BUNDLED
REGISTER_LONG_CONSTANT("IMG_EFFECT_REPLACE", gdEffectReplace, CONST_CS |
CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("IMG_EFFECT_ALPHABLEND", gdEffectAlphaBlend, CONST_CS |
CONST_PERSISTENT);
@@ -1253,10 +1263,6 @@ PHP_MINIT_FUNCTION(gd)
REGISTER_LONG_CONSTANT("IMG_EFFECT_OVERLAY", gdEffectOverlay, CONST_CS |
CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("GD_BUNDLED", 1, CONST_CS | CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", GD_FLIP_HORINZONTAL, CONST_CS |
CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("IMG_FLIP_VERTICAL", GD_FLIP_VERTICAL, CONST_CS |
CONST_PERSISTENT);
- REGISTER_LONG_CONSTANT("IMG_FLIP_BOTH", GD_FLIP_BOTH, CONST_CS | CONST_PERSISTENT);
-
REGISTER_LONG_CONSTANT("IMG_CROP_DEFAULT", GD_CROP_DEFAULT, CONST_CS |
CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("IMG_CROP_TRANSPARENT", GD_CROP_TRANSPARENT, CONST_CS |
CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("IMG_CROP_BLACK", GD_CROP_BLACK, CONST_CS | CONST_PERSISTENT);
@@ -5189,26 +5195,7 @@ PHP_FUNCTION(imageconvolution)
/* }}} */
/* End section: Filters */
-#ifdef HAVE_GD_BUNDLED
-/* {{{ proto bool imageantialias(resource im, bool on)
- Should antialiased functions used or not*/
-PHP_FUNCTION(imageantialias)
-{
- zval *IM;
- zend_bool alias;
- gdImagePtr im;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &IM, &alias) ==
FAILURE) {
- return;
- }
-
- ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd);
- gdImageAntialias(im, alias);
- RETURN_TRUE;
-}
-/* }}} */
-
-
+#ifdef HAVE_GD_IMAGE_FLIP
/* {{{ proto void imageflip(resource im, int mode)
Flip an image (in place) horizontally, vertically or both directions. */
PHP_FUNCTION(imageflip)
@@ -5244,6 +5231,27 @@ PHP_FUNCTION(imageflip)
RETURN_TRUE;
}
/* }}} */
+#endif
+
+#ifdef HAVE_GD_BUNDLED
+/* {{{ proto bool imageantialias(resource im, bool on)
+ Should antialiased functions used or not*/
+PHP_FUNCTION(imageantialias)
+{
+ zval *IM;
+ zend_bool alias;
+ gdImagePtr im;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &IM, &alias) ==
FAILURE) {
+ return;
+ }
+
+ ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd);
+ gdImageAntialias(im, alias);
+ RETURN_TRUE;
+}
+/* }}} */
+
/* {{{ proto void imagecrop(resource im, array rect)
Crop an image using the given coordinates and size, x, y, width and height. */