将RGB jpg上的背景转换为透明

时间:2013-08-29 23:28:04

标签: php jpeg transparency gdlib

我知道有很多问题,但似乎没有提供实际使用的代码

我正在尝试转换RGB jpg以转换所有

要么不是黑色要么是白色要透明

我尝试使用的代码是:

$im = imagecreatefromjpeg($file);
$remove=imagecolorallocatealpha($img, 255,255,255);
imagefill($im,0,0,$remove);
imagesavealpha($im, TRUE);
imagejpeg($im, $trans_file);

但这似乎将白色背景输出为黑色。任何人都可以帮忙。

更改了我的代码以使用png和同样的事情发生文件看起来是一样的白色转换为黑色而不是透明

$im = imagecreatefromjpeg($file);
$remove=imagecolorallocatealpha($img, 255,255,255);
imagefill($im,0,0,$remove);
imagealphablending($im, TRUE);
imagesavealpha($im, TRUE);
imagepng($im, $trans_file);

1 个答案:

答案 0 :(得分:1)

您无法在jpg文件中拥有透明度。使用imagepng($im, $trans_file);,假设其余代码正常运行。

编辑:不是图片专家,但我认为您需要设置imagealphablending($image, true);才能获得透明度。