GDlib PHP-png到gif返回背景透明到黑色

GDlib PHP-png到gif返回背景透明到黑色,php,png,gd,gif,Php,Png,Gd,Gif,尝试将PNG转换为GIF时,请将透明返回为黑色: $file = "example.png" $whf = getimagesize($file); $wf = $whf[0]; $hf = $whf[1]; $h = "100"; $w = "100"; $img = imagecreatetruecolor($w, $h); $imgi = imagecreatefrompng($file); // Here means to be some magic code... imag

尝试将PNG转换为GIF时,请将透明返回为黑色:

$file = "example.png"

$whf = getimagesize($file); 
$wf = $whf[0];
$hf = $whf[1];

$h = "100";
$w = "100";

$img = imagecreatetruecolor($w, $h);
$imgi = imagecreatefrompng($file);

// Here means to be some magic code...

imagecopyresampled($img, $imgi, 0, 0, 0, 0, $w, $h, $wf, $hf);
imagegif($img, "example.gif");

imagedestroy($img);
我尝试过的代码,但什么都没有:

1º:

这管用!但有一个细节。您需要没有“png渐变透明”的绝对透明背景。Imagick使用半渐变透明到绝对透明,另半渐变透明到绝对平面。谢谢伊萨尔盖罗

$black = imagecolorallocate($img, 0, 0, 0);
imagecolortransparent($img, $black);    
我想您需要打电话获取颜色参考并将其传递给:


答案可能在这个问题上:不,这适用于png到png,但不适用于png到黑色背景。这是正确的方法,但之后需要重新转换图像。顺便说一句,别忘了设置背景。对不起,忘了设置相同的背景颜色。你可以查看想法,查看评论区。还有,检查一下
imagealphablending($img, false);
imagesavealpha($img, true);
$black = imagecolorallocate($img, 0, 0, 0);
imagecolortransparent($img, $black);    
$black = imagecolorallocate($im, 0, 0, 0);
imagecolortransparent($img, $black);