如何将图像的背景颜色更改为绿色?

时间:2009-11-08 13:34:16

标签: php image

现在它是黑​​色的。

function show(){
    $word=array("a","b","c","d","e","f");
    $name=$word[rand(0,5)];
    $im=imagecreatetruecolor(62,20);
    $black=imagecolorallocate($im,rand(20,100),rand(20,100),rand(20,100));
    $white=imagecolorallocate($im,255,255,255);

    imagettftext($im,14,1,15,17,$white,'simkai.ttf',$name);

    for($i=0;$i<200;$i++)
    {
           $randcolor  =  ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
           imagesetpixel($im,  rand()%70  ,  rand()%30  ,  $randcolor);
    }
    header("content-type: image/jpeg");
    imagejpeg($im);
}

2 个答案:

答案 0 :(得分:2)

您可以使用imagefill用赋予颜色填充背景。另外请不要添加$black变量,但是你从不使用它?那是正常的吗?

function show(){
    $word=array("a","b","c","d","e","f");
    $name=$word[rand(0,5)];
    $im=imagecreatetruecolor(62,20);
    $black=imagecolorallocate($im,rand(20,100),rand(20,100),rand(20,100));
    $white=imagecolorallocate($im,255,255,255);
    imagefill ( $im , 0 ,0 , 0 )
    imagettftext($im,14,1,15,17,$white,'simkai.ttf',$name);

    for($i=0;$i<200;$i++)
    {
           $randcolor  =  ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
           imagesetpixel($im,  rand()%70  ,  rand()%30  ,  $randcolor);
    }
    header("content-type: image/jpeg");
 imagejpeg($im);
}

答案 1 :(得分:1)

如果迭代像素并知道哪种颜色是“背景”,只需添加一个条件。但更好的方法可能是使用具有透明度的图像作为背景。