1
0
mirror of https://github.com/php/php-src.git synced 2026-03-25 16:52:18 +01:00

- #38179, imagecopy, palette to truecolor must use alpha channel too

This commit is contained in:
Pierre Joye
2006-07-23 21:41:12 +00:00
parent 43fa4e015b
commit 261beb0326
2 changed files with 29 additions and 1 deletions

View File

@@ -2161,7 +2161,7 @@ void gdImageCopy (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX,
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]));
}
}
}

28
ext/gd/tests/38179.phpt Normal file
View File

@@ -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