PHP中的图像叠加;黑色背景?

时间:2010-12-12 01:52:19

标签: php image background overlay

当我使用GD库在php中执行和图像叠加时,我总是得到黑色背景,但是,所有图像都正确叠加。有人可以帮忙吗?

<?php

    $images = array( $_GET['color'], $_GET['face'], $_GET['hat'] );


    $img = imagecreatetruecolor(58, 75);

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

    imagecolorallocate($img, 255, 205, 255);
    imagecolorallocate($img, 255, 255, 255);
    imagecolortransparent($img, $white);

imagefilledrectangle($img, 0, 0, $imgWidth, $imgHeight, $white);
    foreach($images as $fn) {

        $cur = imagecreatefrompng($fn);
        imagealphablending($cur, true);
        imagesavealpha($cur, true);


        imagecopy($img, $cur, 0, 0, 0, 0, 58, 75);


        imagedestroy($cur);
    }   


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

?>

2 个答案:

答案 0 :(得分:0)

// Create an image

$img = imagecreatetruecolor($imgWidth, $imgHeight);

$white = imagecolorallocate($img, 255, 255, 255);

// Make the background white

imagefilledrectangle($img, 0, 0, $imgWidth, $imgHeight, $white);

......可以提供帮助。

答案 1 :(得分:0)

这是一个常见问题,答案已在stack overflow上提供;那里的答案完美地解决了这个问题。您可能想尝试更难搜索:)

如果您打算尝试做的不仅仅是最基本的图像操作,我建议您可以使用功能更强大(但遗憾的是文档很少)的imagick库来让您的生活更轻松;它更快,更容易(再次,一旦你通过文档)和更强大。