]> granicus.if.org Git - php/commitdiff
fix regression, take #2 (merge issue due to git 1.8 default setting changes)
authorPierre Joye <pierre.php@gmail.com>
Tue, 26 Mar 2013 10:23:15 +0000 (11:23 +0100)
committerPierre Joye <pierre.php@gmail.com>
Tue, 26 Mar 2013 10:23:15 +0000 (11:23 +0100)
ext/gd/gd.c
ext/gd/libgd/gd.h
ext/gd/libgd/gd_interpolation.c

index caf84e304e6fe6d0820b5eea6061947563702d83..23a6ec9143c76662125d3707026396255e7683db 100644 (file)
@@ -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);
index 28c8562f66e6d7c5fdf53e6dedd9c84c93d65531..0bd8ad336d8cb7828cb485ca540e1f5522bc71d6 100644 (file)
@@ -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);
index c88dc7251e9c030acca7b826bd350d1bb082777e..d805ec93e6cc26a725447aadf6530ebbeb9db66e 100644 (file)
@@ -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) {