PHP5中图片中文验证码(下)

1imageheader输出的介绍

 
PHP的HEADER 是定义头的动作,新 PHP5 中支持三种类型
 
    Content-Type: xxxx/yyyy    //内容文件类型
    Location: xxxx:yyyy/zzzz
    Status: nnn xxxxxx
 
 
内容文件的类型
如: image/gif
       image/jpeg
       image/png
 
 
header*
 
 
不同的head设置,定义输出不同的图片格式,在GD 库中都有对应的 image 类型
 
                       imagejpeg (*)   imagegif(*)   image png(*) ……
 
 
2imageline imagesetpixel 函数
 
imageline 画线函数 
        imageline ( resource image, int x1, int y1, int x2, int y2, int color )
             
             image:图片对象
             x1,y1:线的起始坐标
             x2,y2:线的结束坐标
            color:颜色
 
 
imagesetpixel 画点函数
  imagesetpixel ( resource image, int x, int y, int color )
   
   image:图片
   x,y:点的坐标
   color:点的颜色
 
 
3imagettftext 函数调用字体写入文字
  
     imagettftext 带字体的写入函数
 
    imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )
 
image:图片
size:字体大小
angel:倾斜度,围绕x轴旋转
x,y,开始位置
color:颜色
fontfile:字体文件目录
text:显示的内容
 
 
4PHP 验证码插入中文的方法
 
    iconv ("gb2312","UTF-8","新年快乐!"); //首先要将文字转换成UTF8格式
 
    然后使用imagettftext  调用一种字体,再将转换好的UTF8格式的中文
写入图片中!
 
 

 

<?Php
   //开启session
   session_start();

      for($i=0;$i<4;$i++){

          $rand.=dechex(rand(1,15);

      }
     //把验证码存入session的pic变量中
     $_SESSION[pic]=$rand;

     //创建一个100*30的图片
     $im=imagecreatetruecolor(100,30);

  //设置颜色
   $bg=imagecolorallocate($im,0,0,0);//第一次用调色板的时候,是背景颜色
  //文字颜色
  $tc=imagecolorallocate($im,255,255,255);

//画线条
   for($i=0;$<3;$i++){ 
         $tc=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
         imageline($im,rand(0,80),rand(0,20),rand(0,80),rand(0,20),$tc);
                                }

     //噪点
    for($i=0;i<300;i++){

         imagesetpixel($im,rand(0,100),rand(3,30),$tc);   

                                 }



  $str=iconv("gb2312","UTF-8","新年快乐!"); //首先要将文字转换成UTF8格式 
//写入中文
//载入字体,把字体copy到项目中(根目录下)
imagettftext ($im,12,0,20,20,$tc,'simhe1.ttr',$str);


//写入英文
//把字符串写在图像
//imagestring($im,rand(1,6),0,0,$rand,$tc)  


//输出图片
     header("Content-type:image/jpge"):      注意一致性
     imagejpeg($im);

?>

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值