在 PHP 中创建透明背景的图片时,大家都习惯性的用 imagecolortransparent 来指定一个透明颜色,实际上,在 PHP 中可以将背景直接填充成透明色。
imagecolortransparent 函数在一定条件下是可行的,它的原理是在图片中加上一个属性以指示图片中的某种颜色在显示时显示成透明,这样的图片在网页或较新版本的 Firework 中打开是没有问题的,但是如果用到其他地方,如 Photoshop 中,这种透明效果将不会出现。
如果在 PHP 要使图片的背景真正成为透明的,可以使用 imagecolorallocatealpha 函数和 imagefill 函数组合来实现。如以下代码所示:
$im = imagecreatetruecolor($width,$height); imagealphablending($im, false); imagesavealpha($im, true); $white = imagecolorallocatealpha($im,255,255,255,127); imagefill($im,0,0,$white);
经过以上 PHP 代码处理后的图片将是一个具有真正透明背景的图片,然后,您可以对此图片进行其他处理。比如在图片上写上文字等。