<?php header(‘Content-Type: image/png‘);$im = imagecreatetruecolor( 200 , 50 );
//生成图片长宽 // Create some colors$white = imagecolorallocate($im, 255, 255, 255);$grey = imagecolorallocate($im, 128, 128, 128);$black = imagecolorallocate($im, 0, 0, 0);//背景色 imagefilledrectangle($im, 0, 0, 200, 49, $white); // The text to draw$rand = rand( 1 ,2 ) ;$one = rand(1,9);$two = rand(1,9);if( $rand == 1 ){ ????$result = $one + $two; ???$text = "$one+$two=?"; }else{ ???if( $one < $two ){ ???????list( $two , $one ) = [ $one , $two ]; ???} ???$result = $one - $two; ???$text = "$one-$two=?";} session_start();$_SESSION[‘code‘] = $result;// Replace font$font = ‘./Arvo-Regular.ttf‘; //imageline( $im , 0 , rand( 1,49 ) , 199 , 30 , $grey );//干扰线
// Add the text$i = 0;$len = strlen( $text );while( $i < $len ?){ ???if( is_numeric( $text[$i] ) ){ ???????imagettftext($im, 20, rand(-45,45), 20 * ($i+1) , 30, $black, $font, $text[$i]); ???}else{ ???????imagettftext($im, 20, 0 , 20 * ($i+1) , 30, $black, $font, $text[$i]); ???}//echo $text[$i]; ???$i ++;}// Using imagepng() results in clearer text compared with imagejpeg()imagepng($im);imagedestroy($im);
如果生成图片为空,请检测字体引入路径是否有问题。
利用PHP 简单实现加减法验证码
原文地址:https://www.cnblogs.com/phper12580/p/10101143.html