我正在尝试打开PNG图像,然后输出为GIF图像。但是,当我这样做并且背景变黑时,透明度会丢失。如果我将图像输出为PNG,它可以工作,但我特别需要将图像作为PNG打开并将其输出为GIF。
这是我到目前为止所做的:
<?php
header("Content-type: image/gif");
$new_img = imagecreatefrompng($image);
imagealphablending($new_img, false);
imagesavealpha($new_img, true);
imagegif($new_img);
?>
但是,imagepng($ new_img)会保存背景透明度,但不会输出为GIF。
答案 0 :(得分:0)
尝试使用此代码:
<?php
header("Content-type: image/gif");
$new_img = imagecreatefrompng($image);
$trans_color = imagecolortransparent($new_img);
$trans_index = imagecolorallocate($new_img, $trans_color['red'], $trans_color['green'], $trans_color['blue']);
imagecolortransparent($new_img, $trans_index);
imagegif($new_img);
?>
答案 1 :(得分:0)
所以我设法让它发挥作用。如果有人有更好的解决方案,请告诉我:
<?php
header("Content-type: image/gif");
$new_img = imagecreatefrompng($image);
$background = imagecreatefrompng("background.png");
imagecopyresampled($background, $new_img, 0, 12, 0, 0, 100, 125, 100, 125);
$c = imagecolorat($background, 0, 0);
imagefilledrectangle($background, 0, 112, 100, 125, $c);
imagecolortransparent($background, $c);
imagegif($new_img);
?>