gpt4 book ai didi

php - 使用 PHP GD 展平多个透明 PNG

转载 作者:行者123 更新时间:2023-12-04 05:38:17 25 4
gpt4 key购买 nike

我正在构建一个产品配置模块,该模块需要将多个相同大小的透明 PNG(代表产品部件)拼合到一个图像上。

起初我尝试了这个,它合成了 3 张图像,但在黑色背景上:

<?php

$x = 500;
$y = 500;

$final_img = imagecreatetruecolor($x, $y);
$images = array('1.png', '2.png', '3.png');

foreach ($images as $image) {
$image_layer = imagecreatefrompng($image);
imagecopy($final_img, $image_layer, 0, 0, 0, 0, $x, $y);
}

imagealphablending($final_img, true);
imagesavealpha($final_img, true);

header('Content-Type: image/png');
imagepng($final_img);

?>

然后我发现这个功能可以修复黑色背景问题并给我一个透明的,但现在只显示添加到合成中的最后一张图像。
<?php

$x = 500;
$y = 500;

function imageCreateTransparent($x, $y) {
$image = imagecreatetruecolor($x, $y);
imagealphablending($image, false);
imagesavealpha($image, true);
$col = imagecolorallocatealpha($image,255,255,255,127);
imagefill($image, 0, 0, $col);
return $image;
}

$final_img = imageCreateTransparent($x, $y);
$images = array('1.png', '2.png', '3.png');

foreach ($images as $image) {
$image_layer = imagecreatefrompng($image);
imagecopy($final_img, $image_layer, 0, 0, 0, 0, $x, $y);
}

imagealphablending($final_img, true);
imagesavealpha($final_img, true);

header('Content-Type: image/png');
imagepng($final_img);

?>

如何获得透明背景并显示合并在一起的所有 3 张图像。

谢谢

最佳答案

我已经修改了您的第一个示例以使其正常工作。

    <?php

$x = 500;
$y = 500;

$final_img = imagecreatetruecolor($x, $y);


imagesavealpha($final_img, true);


$trans_colour = imagecolorallocatealpha($final_img, 0, 0, 0, 127);
imagefill($final_img, 0, 0, $trans_colour);


$images = array('1.png', '2.png', '3.png');

foreach ($images as $image) {
$image_layer = imagecreatefrompng($image);
imagecopy($final_img, $image_layer, 0, 0, 0, 0, $x, $y);
}

//imagealphablending($final_img, true);
imagesavealpha($final_img, true);
imagealphablending($final_img, true);


header('Content-Type: image/png');
imagepng($final_img);

?>

关于php - 使用 PHP GD 展平多个透明 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11628324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com