PHP 개발 검증 코드 튜토...LOGIN

PHP 개발 검증 코드 튜토리얼의 간섭 요소(라인)

이전 섹션에서는 간섭 요소(점)를 추가했습니다

이제 간섭 요소(선)를 추가해 보겠습니다

<?php
 //第一步 创建一个画布
 $image = imagecreatetruecolor(100, 30); //创建一个宽为100高为30的黑色图像
 $bgcolor = imagecolorallocate($image, 255, 255, 255); //为图像分配颜色
 imagefill($image,0,0,$bgcolor); //给黑色的背景图像分配白色
 

 //第二步,在这个图像上实现数字
 for($i=0;$i<4;$i++){
 $fontsize = 6; //字体大小

 $fontcolor = imagecolorallocate($image,rand(1,120),rand(1,120),rand(1,120));
 //设置字体的颜色 颜色我们给一个随机的值,画布为白色,0到120之间,颜色为深色
 $fontcontent = rand(0,9); //设置内容是一个随机数

 //现在需要把这个随机数添加到画布上去
 $x = ($i*100/4)+rand(5,10);
 $y = rand(5,10);
 imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
 }
 
 //设置干扰元素 点
 for($i=0;$i<200;$i++){
 //首先我们设置点的颜色
 $pointcolor = imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
 //设置点放在图像的什么位置上
 imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor);
 }
 
 //输出图像
 header("content-type:image/png");
 imagepng($image);

 //销毁资源
 imagedestroy($img);

?>

위 코드에서 간섭 요소를 추가했습니다.

간섭 요소를 추가하는 방법을 살펴보겠습니다. , line

for ($i=0;$i<5;$i++){

//먼저 루프에 설정합니다. 줄 수는 5입니다

//줄 색상을 설정합니다. 텍스트 색상이 1,120 사이이면 선 색상은 텍스트 색상보다 밝아야 합니다. 80, 220

$linecolor = imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220) )); /그런 다음 선의 위치를 ​​설정합니다

imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29), $linecolor);

}

아래 전체 코드를 살펴보겠습니다.

<?php
    //第一步 创建一个画布
    $image = imagecreatetruecolor(100, 30); //创建一个宽为100高为30的黑色图像
    $bgcolor = imagecolorallocate($image, 255, 255, 255); //为图像分配颜色
    imagefill($image,0,0,$bgcolor); //给黑色的背景图像分配白色
    

    //第二步,在这个图像上实现数字
    for($i=0;$i<4;$i++){
        $fontsize = 6; //字体大小

        $fontcolor = imagecolorallocate($image,rand(1,120),rand(1,120),rand(1,120));
        //设置字体的颜色  颜色我们给一个随机的值,画布为白色,0到120之间,颜色为深色
        $fontcontent = rand(0,9); //设置内容是一个随机数

        //现在需要把这个随机数添加到画布上去
        $x = ($i*100/4)+rand(5,10);
        $y = rand(5,10);
        imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
    }


    //第三步,设置干扰元素,点
    for($i=0;$i<200;$i++){
        $pointcolor = imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
        //设置点的颜色
        imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor);
    }

    for($i=0;$i<5;$i++){
        $linecolor = imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));
        //设置线的颜色 让线的颜色变得更浅一点,80到220
        imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
    }


    //输出图像
    header("content-type:image/png");
    imagepng($image);

    //销毁资源
    imagedestroy($img);

?>

위 코드를 사용하여 간단한 인증 코드를 만들었습니다

다음 섹션
<?php //第一步 创建一个画布 $image = imagecreatetruecolor(100, 30); //创建一个宽为100高为30的黑色图像 $bgcolor = imagecolorallocate($image, 255, 255, 255); //为图像分配颜色 imagefill($image,0,0,$bgcolor); //给黑色的背景图像分配白色 //第二步,在这个图像上实现数字 for($i=0;$i<4;$i++){ $fontsize = 6; //字体大小 $fontcolor = imagecolorallocate($image,rand(1,120),rand(1,120),rand(1,120)); //设置字体的颜色 颜色我们给一个随机的值,画布为白色,0到120之间,颜色为深色 $fontcontent = rand(0,9); //设置内容是一个随机数 //现在需要把这个随机数添加到画布上去 $x = ($i*100/4)+rand(5,10); $y = rand(5,10); imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); } //第三步,设置干扰元素,点 for($i=0;$i<200;$i++){ $pointcolor = imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200)); //设置点的颜色 imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor); } for($i=0;$i<5;$i++){ $linecolor = imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220)); //设置线的颜色 让线的颜色变得更浅一点,80到220 imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor); } //输出图像 header("content-type:image/png"); imagepng($image); //销毁资源 imagedestroy($img); ?>
코스웨어