From: Pierre Joye Date: Sat, 4 Nov 2006 03:12:36 +0000 (+0000) Subject: - #39366, imagerotate does not use alpha with angles>45 X-Git-Tag: RELEASE_1_0_0RC1~1137 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3475bd62e07ab61b93e1a72472daa1c1dcd8a6f9;p=php - #39366, imagerotate does not use alpha with angles>45 --- diff --git a/ext/gd/libgd/gd.c b/ext/gd/libgd/gd.c index ff2b0596f5..43a45939af 100644 --- a/ext/gd/libgd/gd.c +++ b/ext/gd/libgd/gd.c @@ -2776,6 +2776,9 @@ gdImagePtr gdImageRotate90 (gdImagePtr src, int ignoretransparent) dst->transparent = src->transparent; if (dst != NULL) { + int old_blendmode = dst->alphaBlendingFlag; + dst->alphaBlendingFlag = 0; + gdImagePaletteCopy (dst, src); for (uY = 0; uYsy; uY++) { @@ -2795,6 +2798,7 @@ gdImagePtr gdImageRotate90 (gdImagePtr src, int ignoretransparent) } } } + dst->alphaBlendingFlag = old_blendmode; } return dst; @@ -2818,6 +2822,9 @@ gdImagePtr gdImageRotate180 (gdImagePtr src, int ignoretransparent) dst->transparent = src->transparent; if (dst != NULL) { + int old_blendmode = dst->alphaBlendingFlag; + dst->alphaBlendingFlag = 0; + gdImagePaletteCopy (dst, src); for (uY = 0; uYsy; uY++) { @@ -2838,6 +2845,7 @@ gdImagePtr gdImageRotate180 (gdImagePtr src, int ignoretransparent) } } } + dst->alphaBlendingFlag = old_blendmode; } return dst; @@ -2861,6 +2869,9 @@ gdImagePtr gdImageRotate270 (gdImagePtr src, int ignoretransparent) dst->transparent = src->transparent; if (dst != NULL) { + int old_blendmode = dst->alphaBlendingFlag; + dst->alphaBlendingFlag = 0; + gdImagePaletteCopy (dst, src); for (uY = 0; uYsy; uY++) { @@ -2881,6 +2892,7 @@ gdImagePtr gdImageRotate270 (gdImagePtr src, int ignoretransparent) } } } + dst->alphaBlendingFlag = old_blendmode; } return dst; diff --git a/ext/gd/tests/bug39366.phpt b/ext/gd/tests/bug39366.phpt new file mode 100644 index 0000000000..212012a1bd --- /dev/null +++ b/ext/gd/tests/bug39366.phpt @@ -0,0 +1,21 @@ +--TEST-- +Bug #39366 (imagerotate does not respect alpha with angles>45) +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +32FF0000