繁体   English   中英

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

[英]GDlib PHP - png to gif returns background transparent to black

尝试将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º:

imagesavealpha($img, true);
imagecolortransparent($img, 127<<24);

2º:

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

这可行! 但是有一个细节。 您需要没有“ png渐变透明胶片”的绝对透明的背景。 Imagick使用半透明的渐变色来实现绝对透明,另一半使用透明色来实现绝对透明。 感谢isalgueiro!

$black = imagecolorallocate($img, 0, 0, 0);
imagecolortransparent($img, $black);    

我认为您需要调用imagecolorallocate以获得颜色参考并将其传递给imagecolortransparent

$black = imagecolorallocate($im, 0, 0, 0);
imagecolortransparent($img, $black);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM