mirror of
https://github.com/php/php-src.git
synced 2024-09-24 11:27:28 +00:00
gd: provide imageflip with system libgd when available
This commit is contained in:
parent
ee65e6953f
commit
aa4b0af20f
@ -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"
|
||||
|
68
ext/gd/gd.c
68
ext/gd/gd.c
@ -883,17 +883,19 @@ ZEND_BEGIN_ARG_INFO(arginfo_imageconvolution, 0)
|
||||
ZEND_ARG_INFO(0, offset)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#ifdef HAVE_GD_IMAGE_FLIP
|
||||
ZEND_BEGIN_ARG_INFO(arginfo_imageflip, 0)
|
||||
ZEND_ARG_INFO(0, im)
|
||||
ZEND_ARG_INFO(0, mode)
|
||||
ZEND_END_ARG_INFO()
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_GD_BUNDLED
|
||||
ZEND_BEGIN_ARG_INFO(arginfo_imageantialias, 0)
|
||||
ZEND_ARG_INFO(0, im)
|
||||
ZEND_ARG_INFO(0, on)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_INFO(arginfo_imageflip, 0)
|
||||
ZEND_ARG_INFO(0, im)
|
||||
ZEND_ARG_INFO(0, mode)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_INFO(arginfo_imagecrop, 0)
|
||||
ZEND_ARG_INFO(0, im)
|
||||
ZEND_ARG_INFO(0, rect)
|
||||
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user