yanzheng.php
资源名称:BBWPS.rar [点击查看]
上传用户:yttaitong
上传日期:2009-05-10
资源大小:128k
文件大小:5k
源码类别:
WEB源码(ASP,PHP,...)
开发平台:
PHP
- <?php
- /*
- [BBWPS!] (C)2006-2010 小蜜蜂版权所有.
- This is NOT a freeware, use is subject to license terms
- 时间:2007年12月
- 描述:
- */
- error_reporting(0);
- require("checkModuleSession.php");
- $width = "70";
- $height = "20";
- $len = "4";
- $bgcolor = "#ffffff";
- $noise = true;
- $noisenum = 0;
- $border = false;
- $bordercolor = "#000000";
- for ($i=0;$i<$len;$i++){
- $seccode.=mt_rand(0,9);
- }
- $code = md5(intval($seccode));
- $_SESSION['code']=$code;
- bbwpsSetSession("../session/",array("code"=>$code));
- $seccode = sprintf('%04d', $seccode);
- if(function_exists('imagecreate') && function_exists('imagecolorset') && function_exists('imagecopyresized') && function_exists('imagecolorallocate') && function_exists('imagesetpixel') && function_exists('imagechar') && function_exists('imagecreatefromgif') && function_exists('imagepng')) {
- $im = imagecreate($width, $height);
- $backgroundcolor = getcolor($bgcolor);
- $numorder = array(1, 2, 3, 4);
- shuffle($numorder);
- $numorder = array_flip($numorder);
- for($i = 1; $i <= 4; $i++) {
- $imcodefile = './img/'.$seccode[$numorder[$i]].'.gif';
- $x = $numorder[$i] * 13 + mt_rand(0, 4) - 2;
- $y = mt_rand(0, 3);
- if(file_exists($imcodefile)) {
- $imcode = imagecreatefromgif($imcodefile);
- $data = getimagesize($imcodefile);
- imagecolorset($imcode, 0 ,mt_rand(0, 255), mt_rand(0, 128), mt_rand(0, 255));
- imagecopyresized($im, $imcode, $x, $y, 0, 0, $data[0] + mt_rand(0, 6) - 3, $data[1] + mt_rand(0, 6) - 3, $data[0], $data[1]);
- } else {
- $text_color = imagecolorallocate($im, mt_rand(0, 50), mt_rand(0, 50), mt_rand(0, 50));
- imagechar($im, 5, $x + 5, $y + 3, $seccode[$numorder[$i]], $text_color);
- }
- }
- $linenums = mt_rand(10, 32);
- for($i=0; $i <= $linenums; $i++) {
- $linecolor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
- $linex = mt_rand(0, 62);
- $liney = mt_rand(0, 25);
- imageline($im, $linex, $liney, $linex + mt_rand(0, 4) - 2, $liney + mt_rand(0, 4) - 2, $linecolor);
- }
- if($noise == true) setnoise();
- $bordercolor = getcolor($bordercolor);
- if($border)imagerectangle($im, 0, 0, 61, 24, $bordercolor);
- header('Content-type: image/png');
- imagepng($im);
- imagedestroy($im);
- }else {
- $numbers = array
- (
- 0 => array('3c','66','66','66','66','66','66','66','66','3c'),
- 1 => array('1c','0c','0c','0c','0c','0c','0c','0c','1c','0c'),
- 2 => array('7e','60','60','30','18','0c','06','06','66','3c'),
- 3 => array('3c','66','06','06','06','1c','06','06','66','3c'),
- 4 => array('1e','0c','7e','4c','2c','2c','1c','1c','0c','0c'),
- 5 => array('3c','66','06','06','06','7c','60','60','60','7e'),
- 6 => array('3c','66','66','66','66','7c','60','60','30','1c'),
- 7 => array('30','30','18','18','0c','0c','06','06','66','7e'),
- 8 => array('3c','66','66','66','66','3c','66','66','66','3c'),
- 9 => array('38','0c','06','06','3e','66','66','66','66','3c')
- );
- for($i = 0; $i < 10; $i++) {
- for($j = 0; $j < 6; $j++) {
- $a1 = substr('012', mt_rand(0, 2), 1).substr('012345', mt_rand(0, 5), 1);
- $a2 = substr('012345', mt_rand(0, 5), 1).substr('0123', mt_rand(0, 3), 1);
- mt_rand(0, 1) == 1 ? array_push($numbers[$i], $a1) : array_unshift($numbers[$i], $a1);
- mt_rand(0, 1) == 0 ? array_push($numbers[$i], $a1) : array_unshift($numbers[$i], $a2);
- }
- }
- $bitmap = array();
- for($i = 0; $i < 20; $i++) {
- for($j = 0; $j < 4; $j++) {
- $n = substr($seccode, $j, 1);
- $bytes = $numbers[$n][$i];
- $a = mt_rand(0, 14);
- switch($a) {
- case 1: str_replace('9', '8', $bytes); break;
- case 3: str_replace('c', 'e', $bytes); break;
- case 6: str_replace('3', 'b', $bytes); break;
- case 8: str_replace('8', '9', $bytes); break;
- case 0: str_replace('e', 'f', $bytes); break;
- }
- array_push($bitmap, $bytes);
- }
- }
- for($i = 0; $i < 8; $i++) {
- $a = substr('012', mt_rand(0, 2), 1) . substr('012345', mt_rand(0, 5), 1);
- array_unshift($bitmap, $a);
- array_push($bitmap, $a);
- }
- $image = pack('H*', '424d9e000000000000003e000000280000002000000018000000010001000000'.
- '0000600000000000000000000000000000000000000000000000FFFFFF00'.implode('', $bitmap));
- header('Content-Type: image/bmp');
- echo $image;
- }
- function getcolor($color){
- global $im;
- $color = eregi_replace ("^#","",$color);
- $r = $color[0].$color[1];
- $r = hexdec ($r);
- $b = $color[2].$color[3];
- $b = hexdec ($b);
- $g = $color[4].$color[5];
- $g = hexdec ($g);
- $color = imagecolorallocate ($im, $r, $b, $g);
- return $color;
- }
- function setnoise(){
- global $im, $width, $height, $back, $noisenum;
- for ($i=0; $i<$noisenum; $i++){
- $randColor = imageColorAllocate($im, rand(0, 255), rand(0, 255), rand(0, 255));
- imageSetPixel($im, rand(0, $width), rand(0, $height), $randColor);
- }
- }
- ?>