diff --git a/ext/gd/libgd/gd_interpolation.c b/ext/gd/libgd/gd_interpolation.c index 24c7dc5e003..f70169dddcf 100644 --- a/ext/gd/libgd/gd_interpolation.c +++ b/ext/gd/libgd/gd_interpolation.c @@ -2178,10 +2178,13 @@ gdImagePtr gdImageRotateInterpolated(const gdImagePtr src, const float angle, in /* no interpolation needed here */ switch (angle_rounded) { - case 9000: + case -27000: + case 9000: return gdImageRotate90(src, 0); - case 18000: + case -18000: + case 18000: return gdImageRotate180(src, 0); + case -9000: case 27000: return gdImageRotate270(src, 0); } diff --git a/ext/gd/tests/bug66882.phpt b/ext/gd/tests/bug66882.phpt new file mode 100644 index 00000000000..6dfbdfe06de --- /dev/null +++ b/ext/gd/tests/bug66882.phpt @@ -0,0 +1,14 @@ +--TEST-- +Bug #66882 (imagerotate by -90 degrees truncates image by 1px) +--SKIPIF-- + +--FILE-- + +--EXPECT-- +int(10) +int(10)