|
发表于 2006-4-4 13:29:18
|
显示全部楼层
[php]<?php
define(\'CURSCRIPT\', \'seccode\');
require_once \'./include/common.inc.php\';
if($seccode < 1 || $seccode > 9999) {
exit(\'Access Denied\');
}
$seccode = sprintf(\'%04d\', $seccode);
if(!$nocacheheaders) {
@header(\"Expires: 0\");
@header(\"Cache-Control: private, post-check=0, pre-check=0, max-age=0\", FALSE);
@header(\"Pragma: no-cache\");
}
if(function_exists(\'imagecreate\') && function_exists(\'imagecolorallocate\') && function_exists(\'imagesetpixel\') && function_exists(\'imagechar\') && function_exists(\'imagepng\')) {
$im = imagecreate(62, 25);
$background_color = imagecolorallocate ($im, 200, 200, 200);
for ($i=0; $i <= 128; $i++) {
$point_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
imagesetpixel($im, mt_rand(0, 62), mt_rand(0, 25), $point_color);
}
for($i = 0; $i < 4; $i++) {
$text_color = imagecolorallocate($im, mt_rand(0,255), mt_rand(0,128), mt_rand(0,255));
$x = 5 + $i * 15;
$y = mt_rand(0, 10);
imagechar($im, 5, $x, $y, $seccode[$i], $text_color);
}
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;
}
?>[/php] |
|