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



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

我正在尝试转换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);

jpg文件中不能具有透明度。使用imagepng($im, $trans_file);,假设代码的其余部分正常工作。

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

最新更新