Home > Backend Development > PHP Tutorial > PHP generates a distorted and angular image verification code function that supports Chinese_PHP tutorial

PHP generates a distorted and angular image verification code function that supports Chinese_PHP tutorial

WBOY
Release: 2016-07-20 11:06:54
Original
747 people have browsed it

PHP generates a twisted and angled image verification code function that supports Chinese

function make_rand($length="32"){//Verification code text generation function
$ str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
$result="";
for($i=0;$i<$length;$i++){
$num[$i]=rand(0,61 );
$result.=$str[$num[$i]];
}
return $result;
}
$checkcode = make_rand(5);
$ im_x=160;
$im_y=32;
function make_crand($length="5") {
$string = '';
for($i=0;$i<$length ;$i++) {
$string .= chr(rand(0xB0,0xF7)).chr(rand(0xA1,0xFE));
}
return $string;
}
function getAuthImage($text , $im_x = 230 , $im_y = 32) {
$im = imagecreatetruecolor($im_x,$im_y);
$text_c = ImageColorAllocate($im, mt_rand(0,100),mt_rand( 0,100),mt_rand(0,100));
$tmpC0=mt_rand(100,255);
$tmpC1=mt_rand(100,255);
$tmpC2=mt_rand(100,255);
$buttum_c = ImageColorAllocate( $im,$tmpC0,$tmpC1,$tmpC2);
imagefill($im, 16, 13, $buttum_c);
//echo $text;
$font = 'c:WINDOWSFontssimsun.ttc ';
//echo strlen($text);

$text=iconv("gb2312","UTF-8",$text);
//echo mb_strlen($text, "UTF-8");
for ($i=0;$i{
$tmp =mb_substr($text,$i,1," UTF-8");
$array = array(-1,0,1);
$p = array_rand($array);
$an = $array[$p]*mt_rand(1 ,9);//Angle
$size = 20;
imagettftext($im,$size,$an,10+$i*$size*2,25,$text_c,$font,$tmp) ;
}

$distortion_im = imagecreatetruecolor ($im_x, $im_y);
imagefill($distortion_im, 16, 13, $buttum_c);
for ( $i=0; $ i<$im_x; $i++) {
for ( $j=0; $j<$im_y; $j++) {
$rgb = imagecolorat($im, $i , $j);
if( (int)($i+20+sin($j/$im_y*2*M_PI)*10) <= imagesx($distortion_im) && (int)($i+20+sin($j/$ im_y*2*M_PI)*10) >=0 ) {
imagesetpixel ($distortion_im, (int)($i+10+sin($j/$im_y*2*M_PI-M_PI*0.5)*3 ), $j, $rgb);
}
}
}
//Add interference pixels;
$count = 600;//The number of interference pixels
for( $i=0; $i<$count; $i++){
$randcolor = ImageColorallocate($distortion_im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
imagesetpixel($distortion_im, mt_rand()%$im_x , mt_rand()%$im_y , $randcolor);
}

$line_c=5;
//imageline
for($i=0; $ i < $line_c; $i++) {
$linecolor = imagecolorallocate($distortion_im, 17, 158, 20);
$lefty = mt_rand(1, $im_x-1);
$righty = mt_rand(1, $im_y-1);
imageline($distortion_im, 0, $lefty, imagesx($distortion_im), $righty, $linecolor);
}

Header("Content -type: image/PNG");

//Output the image to the browser or file in PNG format;
//ImagePNG($im);
ImagePNG($distortion_im);

//Destroy an image and release the memory associated with the image;
ImageDestroy($distortion_im);
ImageDestroy($im);
}

getAuthImage(make_crand( 5));

?>


www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/444995.htmlTechArticlePHP generates a twisted and angled image verification code function that supports Chinese?php function make_rand($length=32){/ /Verification code text generation function $str=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template