mirror of
https://github.com/php/php-src.git
synced 2024-09-22 02:17:32 +00:00
- MFH #39366, imagerotate does not use alpha with angles>45
This commit is contained in:
parent
59841dd25c
commit
d05ef39c74
3
NEWS
3
NEWS
@ -11,7 +11,8 @@ PHP NEWS
|
||||
. Make sure PHP_SELF is filtered in Apache 1 sapi.
|
||||
. Fixed bug #39358 (INSTALL_HEADERS contains incorrect reference to
|
||||
php_filter.h).
|
||||
- Fixed bug #39273 (imagecopyresized may ignore alpha channel)
|
||||
- Fixed bug #39366 (imagerotate does not use alpha with angle > 45°) (Pierre)
|
||||
- Fixed bug #39273 (imagecopyresized may ignore alpha channel) (Pierre)
|
||||
- Fixed bug #39364 (Removed warning on empty haystack inside mb_strstr()).
|
||||
(Ilia)
|
||||
- Fixed bug #39354 (Allow building of curl extension against libcurl 7.16.0)
|
||||
|
@ -2750,6 +2750,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; uY<src->sy; uY++) {
|
||||
@ -2769,6 +2772,7 @@ gdImagePtr gdImageRotate90 (gdImagePtr src, int ignoretransparent)
|
||||
}
|
||||
}
|
||||
}
|
||||
dst->alphaBlendingFlag = old_blendmode;
|
||||
}
|
||||
|
||||
return dst;
|
||||
@ -2792,6 +2796,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; uY<src->sy; uY++) {
|
||||
@ -2812,6 +2819,7 @@ gdImagePtr gdImageRotate180 (gdImagePtr src, int ignoretransparent)
|
||||
}
|
||||
}
|
||||
}
|
||||
dst->alphaBlendingFlag = old_blendmode;
|
||||
}
|
||||
|
||||
return dst;
|
||||
@ -2835,6 +2843,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; uY<src->sy; uY++) {
|
||||
@ -2855,6 +2866,7 @@ gdImagePtr gdImageRotate270 (gdImagePtr src, int ignoretransparent)
|
||||
}
|
||||
}
|
||||
}
|
||||
dst->alphaBlendingFlag = old_blendmode;
|
||||
}
|
||||
|
||||
return dst;
|
||||
|
21
ext/gd/tests/bug39366.phpt
Normal file
21
ext/gd/tests/bug39366.phpt
Normal file
@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Bug #39366 (imagerotate does not respect alpha with angles>45)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!extension_loaded('gd')) die("skip gd extension not available\n");
|
||||
if (!GD_BUNDLED) die('skip external GD libraries always fail');
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$im = imagecreatetruecolor(10,10);
|
||||
imagealphablending($im, 0);
|
||||
imagefilledrectangle($im, 0,0, 8,8, 0x32FF0000);
|
||||
$rotate = imagerotate($im, 180, 0);
|
||||
imagecolortransparent($rotate,0);
|
||||
imagesavealpha($rotate, true);
|
||||
$c = imagecolorat($rotate,5,5);
|
||||
printf("%X\n", $c);
|
||||
?>
|
||||
--EXPECTF--
|
||||
32FF0000
|
Loading…
Reference in New Issue
Block a user