+ -
当前位置:首页 → 问答吧 → 菜鸟刚接触php,制作图片验证码--------无法更换背景颜色

菜鸟刚接触php,制作图片验证码--------无法更换背景颜色

时间:2009-03-23

来源:互联网

本人菜鸟,刚接触php,看了教程后,想学这制作个图片验证码如下:

function code(){
    $str="abcdefghijklmnopqrstuvwsyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";    
    for($i=0;$i<=3;$i++){
          $str{rand(0,41)};
    };
};

$im=imagecreatetruecolor(200, 80);

$bg=imagecolorallocate($im,255,255,255);

$codecolor=imagecolorallocate($im,255,0,0);

imagestring($im,2,0,0,code(),$codecolor);

header("Content-type:image/png");

imagepng($im);

问题一:  无论我怎样更换$bg里面的数值,背景颜色都改变不了.
问题二:  无法在图片里显示code()函数里面的随机字符.

先谢谢各位大虾了.....

作者: 陈仔   发布时间: 2009-03-23

你的程序有两个个地方错误:
1、code()方法没有返回值
2、code()方法里你在循环里用$str{rand(0,41)}这样取值后并没有赋值给另一个变量,
   这样得到的验证码存放到哪里?
还有一个要注意的地方是:imagecreatetruecolor()创建一个真彩色图像后,
并不会自动把imagecolorallocate()方法注册的第一个颜色作为背景色,而必须用imagefill()去填充,
我修改了下你的程序:
[php]
<?php
function code(){
    $str="abcdefghijklmnopqrstuvwsyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $code = '';  
    for($i=0;$i<=3;$i++){
          $code .= $str{rand(0,41)};
    };
    return $code;
}

$im=imagecreatetruecolor(200, 80);
$bg=imagecolorallocate($im,255,255,0);
imagefill($im, 0, 0, $bg);
$codecolor=imagecolorallocate($im,255,0,0);
imagestring($im,2,0,0,code(),$codecolor);
header("Content-type:image/png");
imagepng($im);
?>
[/php]

作者: csch   发布时间: 2009-03-24


帮并对比过

作者: 海贼王   发布时间: 2009-03-24

嗯,明白了,谢谢各位大虾了

作者: 陈仔   发布时间: 2009-03-24

又学了一点。。。。

作者: libolin   发布时间: 2009-05-31

路过

作者: cyr11   发布时间: 2009-06-01

学习了!

作者: zys369   发布时间: 2009-06-03

楼主,你得用imagefill()这个函数来填充背景色

作者: psychopathme   发布时间: 2009-06-03

引用
引用第1楼csch于2009-03-24 09:03发表的  :
你的程序有两个个地方错误:
1、code()方法没有返回值
2、code()方法里你在循环里用$str{rand(0,41)}这样取值后并没有赋值给另一个变量,
   这样得到的验证码存放到哪里?
还有一个要注意的地方是:imagecreatetruecolor()创建一个真彩色图像后,
.......


<?php
$image = imagecreatetruecolor(100,30);

header("Content-type: image/jpeg");

imagejpeg($image);
?>

你试下这个,没有设背景色,但还是显黑色,这个能解释吗?41应该改为61吧

作者: psychopathme   发布时间: 2009-06-03

路过,不小心又捡到一招     

作者: ivws6117   发布时间: 2009-06-04

厉害哈   又学到了一招哈

作者: xiaop   发布时间: 2009-10-04

作者: seven_zlc   发布时间: 2010-05-14

作者: chenqisu1   发布时间: 2010-09-21

相关阅读 更多

热门下载

更多