pajoye Sat Nov 4 03:12:36 2006 UTC
Added files:
/php-src/ext/gd/tests bug39366.phpt
Modified files:
/php-src/ext/gd/libgd gd.c
Log:
- #39366, imagerotate does not use alpha with angles>45
http://cvs.php.net/viewvc.cgi/php-src/ext/gd/libgd/gd.c?r1=1.96&r2=1.97&diff_format=u
Index: php-src/ext/gd/libgd/gd.c
diff -u php-src/ext/gd/libgd/gd.c:1.96 php-src/ext/gd/libgd/gd.c:1.97
--- php-src/ext/gd/libgd/gd.c:1.96 Sat Nov 4 02:23:45 2006
+++ php-src/ext/gd/libgd/gd.c Sat Nov 4 03:12:36 2006
@@ -2776,6 +2776,9 @@
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++) {
@@ -2795,6 +2798,7 @@
}
}
}
+ dst->alphaBlendingFlag = old_blendmode;
}
return dst;
@@ -2818,6 +2822,9 @@
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++) {
@@ -2838,6 +2845,7 @@
}
}
}
+ dst->alphaBlendingFlag = old_blendmode;
}
return dst;
@@ -2861,6 +2869,9 @@
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++) {
@@ -2881,6 +2892,7 @@
}
}
}
+ dst->alphaBlendingFlag = old_blendmode;
}
return dst;
http://cvs.php.net/viewvc.cgi/php-src/ext/gd/tests/bug39366.phpt?view=markup&rev=1.1
Index: php-src/ext/gd/tests/bug39366.phpt
+++ php-src/ext/gd/tests/bug39366.phpt
--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
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php