格格广场舞抛绣球背面:php创建图像验证码

来源:百度文库 编辑:中财网 时间:2024/04/27 13:49:48
imageverify.php:

  /**
   * 简单图像验证码
   */
  //产生随机数,0-100之间:   echo mt_rand(0, 100);
 
 
  //为什么要循环0-15之间的数呢?因为要实现最简单的字母和数字混搭.十六进制0-9,a-f
  //dechex():十进制转换成十六进制
  //echo dechex(mt_rand(0, 15));
  //验证码一般为四位,所以,需要创建一个四位的验证码
  /*echo dechex(mt_rand(0, 15));
  echo dechex(mt_rand(0, 15));
  echo dechex(mt_rand(0, 15));
  echo dechex(mt_rand(0, 15));*/
 //上述方法虽可以实现。但效果不好,代码重复。可用下列的for循环进行实现
 for ($i=0;$i<4;$i++){
     $rand .= dechex(mt_rand(0, 15));  //每循环一次,通过.拼加在后面.相当于:$rand = $rand.dechex(mt_rand(0, 15));
 }
/* echo $rand;
 echo '
';*/
 //接下来需要将上面的文本的验证码做成图形
 header('Content-Type:image/png');
 $im = imagecreatetruecolor(75, 25);
 $blue = imagecolorallocate($im, 0, 102, 255);
 $whilte = imagecolorallocate($im, 255, 255, 255);
 imagefill($im, 0, 0, $blue);
 imagestring($im, 5, 20, 5, $rand, $whilte);
 imagepng($im);
 imagedestroy($im);
 
?>

imageverify2.php:

  /**
   * 加载已有的图像进行做验证码
   */
  header('Content-Type:image/png');
  //从png文件或url载入一张图片。用此方法,是可以编辑图像的
 //通过魔法常量_FILE_进行来获取文件所在的路径
  define('_DIR_', dirname(_FILE_).'\\'.'uploads\\');  //两个反斜杠表示对一个路径反斜杠进行转义原样输出
  $im = imagecreatefrompng(_DIR_.'222.png');
  $white = imagecolorallocate($im, 255, 255, 255);
  //在载入的图像中,加入小水印
  //5表示字体的大小,php本身提供1-5整型数值的字体。
  imagestring($im, 5, 0, 0, 'www.sina.com.cn', $white);
  imagepng($im);
  imagedestroy($im);
?>
imageverify3.php:

  /**
   * 加载已有的图像进行做验证码
   */
  header('Content-Type:image/png');
  //从png文件或url载入一张图片。用此方法,是可以编辑图像的
 //通过魔法常量_FILE_进行来获取文件所在的路径
  define('_DIR_', dirname(_FILE_).'\\'.'uploads\\');  //两个反斜杠表示对一个路径反斜杠进行转义原样输出
  $im = imagecreatefrompng(_DIR_.'222.png');
  $white = imagecolorallocate($im, 255, 255, 255);
 
  //iconv()编码转换函数。第一个参数是输入的编码(文件本身的编码)、第2个参数是输出显的的编码、第3个参数是需要转换的字符串
  $text = iconv('gbk', 'utf-8', '黄英昌');
  //定义字体文件。font字体还必须能支持中文
  $font = 'C:\WINDOWS\Fonts\SIMHEI.TTF';  //黑体字体支持中文
 //第2个对数是字体的大小,第3个参数是旋转角度,第4、5个参数是x轴、y轴坐标
  imagettftext($im, 30, 0, 30, 30, $white, $font, $text);
 
  imagepng($im);
  imagedestroy($im);
?>

imageverify4.php:

  /**
   * 微缩图:不但表面的大小改变了,容量也缩小了,且不失真。
   */
  header('Content-Type:image/png');
  //从png文件或url载入一张图片。用此方法,是可以编辑图像的
 //通过魔法常量_FILE_进行来获取文件所在的路径
  define('_DIR_', dirname(_FILE_).'\\'.'uploads\\');  //两个反斜杠表示对一个路径反斜杠进行转义原样输出
  //getimagesize()取得图像大小,返回一个数组列表.list()中的变量名,即数组下标,可以通过print_r(getimagesize(__DIR__.'222.png'))在浏览器中显示出来
  //获取图像的宽和高数值
  list($width,$height) = getimagesize(_DIR_.'222.png');
 
  //将原图缩放成40%
  $_width = $width*0.4;
  $_height = $height*0.4;
  //接下来创建一个新图
  $im = imagecreatetruecolor($_width, $_height);
  //下面的工作是载入原图,将原图复制到新图上去
  //载入原图
  $_im = imagecreatefrompng(_DIR_.'222.png');
  //将原图拷贝到新图上,最后输出
  imagecopyresampled($im, $_im, 0, 0, 0, 0, $_width, $_height, $width, $height);
 
  //将新图输出
  imagepng($im);
  //资源销毁
  imagedestroy($im);
  imagedestroy($_im);
?>