在基本的环境准备好之后我们就可以愉快的开始进行图片处理。

骚年只要记住一下几个招式!

准备画布

php生成验证码傻瓜式PHP验证码快速生成 Webpack

准备涂料

在画布上画图或添补笔墨

输出终极图像或保存终极图像

开释画布资源

这便是心法口诀!




那么制作一个大略单纯的验证码的套路便是!

imagecreatetruecolor(); //创建画布

imagecolorallocate(); //天生涂料

imagesetpixel(); //可用于绘制模糊点

imagestring(); //水平的画出字符串

imageline(); //画一条线段

imagettftext(); //输入笔墨

header(); //奉告浏览器天生的图片格式

imagepng/imagejpeg/imagegif //输出图片

imagedestroy(); //销毁图片资源

神功已成!




代码示例:

<?php

function getStr($len){

$str = 'abcdefghijklmnopqrstuvwxyz1234567890';

$length = strlen($str)-1;

$s = '';

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

$s .= $str{mt_rand(0,$length)};

}

return $s;

}

$str = getStr(4);

session_start();

$_SESSION['code'] = $str;

$img = imagecreatetruecolor(100,40);

$code = imagecolorallocate($img,255,215,255);

$pix = imagecolorallocate($img,108,208,203);

$font = imagecolorallocate($img,0,0,0);

$line = imagecolorallocate($img,86,53,217);

imagefill($img,0,0,$code);

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

imagesetpixel($img,mt_rand(0,100),mt_rand(0,40),$pix);

}

$fontPath = 'C:\Windows\Fonts\andlso.ttf';

imagettftext($img,30,0,10,30,$font,$fontPath,$str);

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

imageline($img,mt_rand(0,100),mt_rand(0,40),mt_rand(0,100),mt_rand(0,40),$line);

}

header('content-type:image/jpeg');

imagejpeg($img);

imagedestroy($img);

?>