透明叠加创建PNG

时间:2015-09-30 12:47:25

标签: php image transparency gd

我有以下功能,并且我已经达到了我需要的尺寸,现在我添加了背景图像,然后在所有叠加文字上添加了透明背景的文字叠加层,但是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,但它没有任何区别。

1 个答案:

答案 0 :(得分:0)

想出来,函数中不需要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'; } } } 行,下面给出了透明的叠加文本元素,因为现在没有填充。

$query = "SELECT * FROM posts p
JOIN comments c ON p.id = c.id_post
WHERE c.username = '$username'"

$result = mysqli_query($link,$query);

while($row = mysqli_fetch_assco($result)){
    //Your code
}