2017-07-04 16 views
0

私はいくつかの解決策を試しましたが、何も動作しません。GIFの透明な背景が黄色に変わった

$srcImage = imagecreatefromgif($_FILES['img']['tmp_name']); 
$bg = imagecolorallocatealpha($srcImage, 0, 0, 0, 127); 
imagecolortransparent($srcImage, $bg); 
imagealphablending($srcImage, false); 
imagesavealpha($srcImage, true); 

imagegif($srcImage, 't.gif'); 

結果:

enter image description here

答えて

1

GIF画像はアルファチャンネルの透明度をサポートしていません。

既存のイメージカラーを透明に設定しようとしているので、パレットでそれを見つける必要があります。あなたはimagecolorexactであることを行うことができます。

$srcImage = imagecreatefromgif($_FILES['img']['tmp_name']); 
$bg = imagecolorexact($srcImage, 204, 168, 46); // RGB here matches the yellowish colour in your image. 
imagecolortransparent($srcImage, $bg); 

imagegif($srcImage, 't.gif'); 

結果:

enter image description here

+0

問題は、私は背景が変わりますどんな色かわからないです。しかし、私は透明な背景を持つ複数のgifでテストし、黒のようです。だから 'imagecolorexact($ image、0、0、0)'がその仕事をします。 – Bacchus

関連する問題