Php 透明覆盖创建PNG

Php 透明覆盖创建PNG,php,image,transparency,gd,Php,Image,Transparency,Gd,我有下面的函数,我已经得到了我需要的大小,现在我正在添加一个背景图像,然后希望在所有覆盖文本上添加一个透明背景的文本覆盖,但是imagefilledrectangle应用了预期的变量$white,我试图看看是否有任何方法告诉函数是透明的,而不是接受颜色,在这个例子中,PHP文档说颜色是imagefilledrectangle的必需参数,任何建议都非常感谢 背景图像是本地图像: define("BACKGROUND_FILE", "background.png"); 功能: public fun

我有下面的函数,我已经得到了我需要的大小,现在我正在添加一个背景图像,然后希望在所有覆盖文本上添加一个透明背景的文本覆盖,但是
imagefilledrectangle
应用了预期的变量
$white
,我试图看看是否有任何方法告诉函数是透明的,而不是接受颜色,在这个例子中,PHP文档说颜色是
imagefilledrectangle
的必需参数,任何建议都非常感谢

背景图像是本地图像:

define("BACKGROUND_FILE", "background.png");
功能:

public function generateImage()
{
    if (file_exists(BACKGROUND_FILE)) {     
        $im = @imagecreatefrompng(BACKGROUND_FILE);

        if($im) {
            $white = imagecolorallocate($im, 255, 255, 255);
            $black = imagecolorallocate($im, 115, 150, 195);

            imagefilledrectangle($im, 0, 0, 399, 29, $white);

            $text = 'Test';
            $font = 'arial_narrow_7.ttf';

            imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

            imagepng($im);
            imagedestroy($im);
        } else {
            echo 'Error';
        }
    }
}

我尝试添加
imagecolortransparent($im,$white)
imagefilledrectangle
之前,但没有任何区别。

解决了这个问题,在函数中不需要使用
imagefilledrectangle
行,下面给出了透明的覆盖文本元素,因为现在没有应用填充

public function generateImage()
{
    if (file_exists(BACKGROUND_FILE)) {     
        $im = @imagecreatefrompng(BACKGROUND_FILE);

        if($im) {
            $black = imagecolorallocate($im, 115, 150, 195);

            $text = 'Test';
            $font = 'arial_narrow_7.ttf';

            imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

            imagepng($im);
            imagedestroy($im);
        } else {
            echo 'Error';
        }
    }
}

通过计算,不需要在函数中使用
imagefilledrectangle
行,下面给出了透明的覆盖文本元素,因为现在没有应用填充

public function generateImage()
{
    if (file_exists(BACKGROUND_FILE)) {     
        $im = @imagecreatefrompng(BACKGROUND_FILE);

        if($im) {
            $black = imagecolorallocate($im, 115, 150, 195);

            $text = 'Test';
            $font = 'arial_narrow_7.ttf';

            imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

            imagepng($im);
            imagedestroy($im);
        } else {
            echo 'Error';
        }
    }
}