学习PHP图像处理(验证码)

本文介绍如何使用PHP和GD库生成带有随机颜色和位置的验证码图片。文章详细解释了创建画布、设置颜色、绘制字符及输出图像的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天来学习下验证码是怎样搞的,来学习下面得代码

<?php

session_start(); //启动Session会话
header("content-type:image/png");    //设置创建图像的格式
$image_width=70;                      //设置图像宽度
$image_height=18;              //设置图像高度


$new_number=$_GET[num];
$num_image=imagecreate($image_width,$image_height);  //创建一个画布
imagecolorallocate($num_image,255,255,255);     //设置画布的颜色


for($i=0;$i<strlen($new_number);$i++){  //循环读取SESSION变量中的验证码
   $font=mt_rand(3,5);                             //设置随机的字体
   $x=mt_rand(1,8)+$image_width*$i/4;               //设置随机字符所在位置的X坐标
   $y=mt_rand(1,$image_height/4);                   //设置随机字符所在位置的Y坐标
   $color=imagecolorallocate($num_image,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));  //设置字符的颜色
   imagestring($num_image,$font,$x,$y,$new_number[$i],$color);    //水平输出字符
}


imagepng($num_image);       //生成PNG格式的图像
imagedestroy($num_image);   //释放图像资源

?>

PHP操作图形可以通过GD2库函数来实现.

第一步:创建画布

在GD2库函数中创建画布应用Imagecreate()函数.

$num_image=imagecreate($image_width,$image_height);  //用imagecreate创建一个宽70像素,高18像素的画布.

第二步:设置画布颜色

imagecolorallocate($num_image,255,255,255);      //设置画布颜色RGB值为:255,255,255

第三步:书写字体

PHP中的GD库可以绘制英文字符串,也可以绘制中文汉字.绘制英文字符串应用imagestring()函数.

imagestring(resource image,int font,int x,int y,string s,int col)

imagestring()函数用col颜色将字符串s绘制到image所代表的图像的(x,y)坐标处(这是字体串左上角的坐标,整幅图像的左上角为(0,0).如果font是1,2,3,4或5,则使用内置字体).

第四步:输出图像

imagepng($num_image);       //生成PNG格式的图像

第五步:销毁图像

imagedestroy($num_image);   //释放图像资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值