pajoye          Sun Jul 23 21:48:18 2006 UTC

  Modified files:              
    /php-src/ext/gd/tests       38179.phpt 
    /php-src/ext/gd/libgd       gd.c 
  Log:
  - MFB: #38179, imagecopy, palette to truecolor must use alpha channel too
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/gd/tests/38179.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/gd/tests/38179.phpt
diff -u /dev/null php-src/ext/gd/tests/38179.phpt:1.2
--- /dev/null   Sun Jul 23 21:48:18 2006
+++ php-src/ext/gd/tests/38179.phpt     Sun Jul 23 21:48:18 2006
@@ -0,0 +1,28 @@
+--TEST--
+imagecopy doen't copy alpha, palette to truecolor
+--SKIPIF--
+<?php
+        if (!function_exists('imagecopy')) die("skip gd extension not 
available\n");
+?>
+--FILE--
+<?php
+$src = imagecreate(5,5);
+$c0 = imagecolorallocate($src, 255,255,255);
+$c1 = imagecolorallocatealpha($src, 255,0,0,70);
+
+imagealphablending($src, 0);
+imagefill($src, 0,0, $c1);
+
+$dst_tc = imagecreatetruecolor(5,5);
+imagealphablending($dst_tc, 0);
+
+imagecopy($dst_tc, $src, 0,0, 0,0, imagesx($src), imagesy($src));
+
+$p1 = imagecolorat($dst_tc, 3,3);
+printf("%X\n", $p1);
+
+imagedestroy($src); imagedestroy($dst_tc);
+?>
+--EXPECTF--
+46FF0000
+
http://cvs.php.net/viewvc.cgi/php-src/ext/gd/libgd/gd.c?r1=1.93&r2=1.94&diff_format=u
Index: php-src/ext/gd/libgd/gd.c
diff -u php-src/ext/gd/libgd/gd.c:1.93 php-src/ext/gd/libgd/gd.c:1.94
--- php-src/ext/gd/libgd/gd.c:1.93      Fri Dec 30 09:53:05 2005
+++ php-src/ext/gd/libgd/gd.c   Sun Jul 23 21:48:18 2006
@@ -2190,7 +2190,7 @@
                                for (x = 0; (x < w); x++) {
                                        int c = gdImageGetPixel (src, srcX + x, 
srcY + y);
                                        if (c != src->transparent) {
-                                               gdImageSetPixel (dst, dstX + x, 
dstY + y, gdTrueColor(src->red[c], src->green[c], src->blue[c]));
+                                               gdImageSetPixel(dst, dstX + x, 
dstY + y, gdTrueColorAlpha(src->red[c], src->green[c], src->blue[c], 
src->alpha[c]));
                                        }
                                }
                        }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to