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:
@@ -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
28
ext/gd/tests/38179.phpt
Normal 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
|
||||
|
||||
Reference in New Issue
Block a user