0

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

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

1 回答 1

1

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

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

于 2013-08-29T23:30:25.433 回答