GDlib png to 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...

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 использует полупрозрачную прозрачную пленку, а другую половину — абсолютно прозрачную. Спасибо Исальгейру!

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

0

Решение

Я думаю, вам нужно позвонить ImageColorAllocate чтобы получить эталон цвета и передать его imagecolortransparent:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]