0

我正在制作一个头像网站。我的一个用户遇到了问题......他们的头像变成空白。他们的头像:

http://www.world2build.com/API/Avatar.aspx?ID=1586

他们头像上的物品在没有这个物品的情况下可以正常工作,但是当他们穿上这个身体时,这是第一层,它变成空白:

http://node1.world2build.com/Body/13245107086553.png

但是,如果我将 Body 移动到顶层,它会显示...但我必须将 body 保持在底层以确保它像普通头像一样显示。为什么这会使 PNG 作为底层空白?我没有看到问题。

代码(其中 $vars 是一个包含文件链接的数组):

function merge_image($base, $img){
    $width = imagesx($img); 
    $height = imagesy($img); 
    imagecopy($base,$img,0,0,0,0,$width,$height);
}

$base = imagecreatefrompng($vars[0]);
for($i=1; $i<count($vars); $i++){
    merge_image($base, imagecreatefrompng($vars[$i]));
    //echo $vars[$i]."<BR>";
} 

header("Content-Type: image/png"); 
imagesavealpha($base, true); 
imagepng($base); 

注意:第 7 行的 $base 是身体图像(导致问题的那个。)

一个工作头像是:http ://www.world2build.com/API/Avatar.aspx?ID=1602 (它使用与上面提供的不同的主体)

4

1 回答 1

0

我通过用这个替换代码并将 $base 变成一个空白图像来解决这个问题。

$base = imagecreatefrompng("../Images/BlankTransparentImage.png");
for($i=0; $i<count($vars); $i++){
    merge_image($base, imagecreatefrompng($vars[$i]));
    //echo $vars[$i]."<BR>";
} 

(请注意,我在 for 循环中将 $i=1 更改为 $i=0 以包含正文。)

于 2012-05-31T18:29:36.303 回答