


PHP generates a distorted and angular image verification code function that supports Chinese_PHP tutorial
Jul 20, 2016 am 11:06 AM
PHP generates a twisted and angled image verification code function that supports Chinese
<?php
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<mb_strlen($text);$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));
?>

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian

How To Set Up Visual Studio Code (VS Code) for PHP Development
