From 5ae6f582fb9af6e93ecd7001646553ae98be6275 Mon Sep 17 00:00:00 2001 From: Pierre Joye Date: Tue, 26 Mar 2013 11:23:15 +0100 Subject: [PATCH] fix regression, take #2 (merge issue due to git 1.8 default setting changes) --- ext/gd/gd.c | 2 +- ext/gd/libgd/gd.h | 1 + ext/gd/libgd/gd_interpolation.c | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ext/gd/gd.c b/ext/gd/gd.c index caf84e304e..23a6ec9143 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -2263,7 +2263,7 @@ PHP_FUNCTION(imagerotate) ZEND_FETCH_RESOURCE(im_src, gdImagePtr, &SIM, -1, "Image", le_gd); - im_dst = gdImageRotateGeneric(im_src, (float)degrees, color); + im_dst = gdImageRotateInterpolated(im_src, (float)degrees, color); if (im_dst != NULL) { ZEND_REGISTER_RESOURCE(return_value, im_dst, le_gd); diff --git a/ext/gd/libgd/gd.h b/ext/gd/libgd/gd.h index 28c8562f66..0bd8ad336d 100644 --- a/ext/gd/libgd/gd.h +++ b/ext/gd/libgd/gd.h @@ -690,6 +690,7 @@ gdImagePtr gdImageRotate180(gdImagePtr src, int ignoretransparent); gdImagePtr gdImageRotate270(gdImagePtr src, int ignoretransparent); gdImagePtr gdImageRotate45(gdImagePtr src, double dAngle, int clrBack, int ignoretransparent); gdImagePtr gdImageRotate (gdImagePtr src, double dAngle, int clrBack, int ignoretransparent); +gdImagePtr gdImageRotateInterpolated(const gdImagePtr src, const float angle, int bgcolor); void gdImageSetBrush(gdImagePtr im, gdImagePtr brush); void gdImageSetTile(gdImagePtr im, gdImagePtr tile); diff --git a/ext/gd/libgd/gd_interpolation.c b/ext/gd/libgd/gd_interpolation.c index c88dc7251e..d805ec93e6 100644 --- a/ext/gd/libgd/gd_interpolation.c +++ b/ext/gd/libgd/gd_interpolation.c @@ -2166,6 +2166,10 @@ gdImagePtr gdImageRotateBicubicFixed(gdImagePtr src, const float degrees, const gdImagePtr gdImageRotateInterpolated(const gdImagePtr src, const float angle, int bgcolor) { const int angle_rounded = (int)floor(angle * 100); + + if (bgcolor < 0) { + return NULL; + } /* no interpolation needed here */ switch (angle_rounded) { -- 2.50.1