Commit: be3e2bb295d58297ce7e8a3ee05cbf2112eb0138 Author: Pierre Joye <pierre....@gmail.com> Sun, 24 Mar 2013 16:52:20 +0100 Parents: 585f71f497804614a4c3d5da86f2797c32ca3def Branches: PHP-5.5 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=be3e2bb295d58297ce7e8a3ee05cbf2112eb0138 Log: fix generic rotation and 90 degrees & multiples rotation, take #2 Bugs: https://bugs.php.net/2 Changed paths: M ext/gd/libgd/gd_interpolation.c Diff: diff --git a/ext/gd/libgd/gd_interpolation.c b/ext/gd/libgd/gd_interpolation.c index ab3e988..15b5415 100644 --- a/ext/gd/libgd/gd_interpolation.c +++ b/ext/gd/libgd/gd_interpolation.c @@ -2177,6 +2177,17 @@ 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); + + /* no interpolation needed here */ + switch (angle_rounded) { + case 9000: + return gdImageRotate90(src, 0); + case 18000: + return gdImageRotate180(src, 0); + case 27000: + return gdImageRotate270(src, 0); + } if (src == NULL || src->interpolation_id < 1 || src->interpolation_id > GD_METHOD_COUNT) { return NULL; @@ -2191,47 +2202,12 @@ gdImagePtr gdImageRotateInterpolated(const gdImagePtr src, const float angle, in return gdImageRotateBilinear(src, angle, bgcolor); break; - case GD_BICUBIC: - return gdImageRotateBicubicFixed(src, angle, bgcolor); - break; - case GD_BICUBIC_FIXED: - return gdImageRotateNearestNeighbour(src, angle, bgcolor); - break; - - case GD_WEIGHTED4: - return gdImageRotateNearestNeighbour(src, angle, bgcolor); - break; - - case GD_BSPLINE: - return gdImageRotateNearestNeighbour(src, angle, bgcolor); - break; - - case GD_BOX: - return gdImageRotateNearestNeighbour(src, angle, bgcolor); - break; - - case GD_HERMITE: - return gdImageRotateNearestNeighbour(src, angle, bgcolor); + return gdImageRotateBicubicFixed(src, angle, bgcolor); break; - case GD_HAMMING: - break; - case GD_SINC: - break; - case GD_BLACKMAN: - break; - - case GD_GAUSSIAN: - break; - case GD_QUADRATIC: - break; - case GD_MITCHELL: - break; - case GD_CATMULLROM: - break; - case GD_POWER: - break; + default: + return gdImageRotateGeneric(src, angle, bgcolor); } return NULL; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php