在 PHP 中,使用 imagecolorallocate()
函数为图像分配颜色时,不支持透明度。要处理透明度,您需要使用 GD 库的 imagecolorallocatealpha()
函数。这个函数允许您分配一个 alpha 值(透明度)给颜色。
以下是使用 imagecolorallocatealpha()
的示例:
<?php
// 创建图像
$image = imagecreatetruecolor(200, 200);
// 为图像分配背景颜色(白色)
$bg = imagecolorallocatealpha($image, 255, 255, 255, 127); // 最后一个参数是 alpha 值,范围从 0(完全透明)到 127(完全不透明)
imagefill($image, 0, 0, $bg);
// 为图像分配前景颜色(红色,带透明度)
$fg = imagecolorallocatealpha($image, 255, 0, 0, 64); // 最后一个参数是 alpha 值,范围从 0(完全透明)到 127(完全不透明)
// 在图像上绘制一个矩形
imagettftext($image, 20, 0, 50, 100, $fg, 'arial.ttf', 'Hello, World!');
// 输出图像
header('Content-type: image/png');
imagepng($image);
// 销毁图像资源
imagedestroy($image);
?>
在这个示例中,我们首先创建了一个 200x200 的图像。然后,我们使用 imagecolorallocatealpha()
函数为背景颜色分配了透明度(127)。接下来,我们为前景颜色(红色)分配了透明度(64)。最后,我们在图像上绘制了一个带有透明度的矩形,并将图像输出到浏览器。