PHP를 통해 그래픽 인증 코드를 그리는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-03-13 12:42:01
원래의
2035명이 탐색했습니다.

이전 글에서 "PHP에서 다각형, 호, 타원을 그리는 방법은?"을 가져왔습니다. (자세한 그림 및 텍스트 설명) "에서는 PHP에서 그래픽을 그리는 방법을 자세히 소개합니다. 이번 글에서는 PHP에서 그래픽 인증코드를 생성하는 방법을 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다!

PHP를 통해 그래픽 인증 코드를 그리는 방법은 무엇입니까?

PHP의 이미지 그리기에 대한 이전 기사를 통해 이에 대한 지식을 활용하여 확장, 즉 일상적인 로그인 페이지에서 자주 사용하는 그래픽 확인 코드를 만들 수 있습니다. 그래픽 확인 코드는 어떻게 형성되나요? , 그래픽 인증 코드를 만드는 방법을 배우고 싶다면 먼저 PHP에서 텍스트를 그리는 방법을 살펴 보겠습니다.

텍스트 그리기

텍스트를 그리는 데 일반적으로 사용하는 함수는 다음과 같습니다.

  • imagechar() : 가로로 문자 그리기 imagechar()  :  水平绘制一个字符  

  • imagecharup()  :  垂直绘制一个字符 

  • imagestring()   : 水平绘制一行字符串    

  • imagestringup()  :  垂直绘制一行字符串    

  • imagettftext()

imagecharup () : 세로로 문자 그리기


imagestring() : 가로로 문자열 한 줄 그리기


PHP를 통해 그래픽 인증 코드를 그리는 방법은 무엇입니까?

imagestringup() code> : 세로로 문자열 한 줄 그리기 <p><br></p> <p><br></p> <code>imagettftext() : TrueType 글꼴을 사용하여 이미지에 텍스트 쓰기


그 중 imagechar() , imagecharup() , imagestring() 및 imagestringup() 함수의 구문 형식은 다음과 같습니다.

imagechar(resource $image, int $font, int $x, int $y, string $c, int $color)
로그인 후 복사
PHP를 통해 그래픽 인증 코드를 그리는 방법은 무엇입니까? 그 중 $image는 생성된 캔버스를 나타냅니다. $font. $x와 $y는 그려지는 글꼴의 색상을 나타내고, $x와 $y는 좌표($x, $y) 위치의 그리기 텍스트를 나타내며, $c는 그려지는 문자(또는 문자열)를 나타내며, $color는 글꼴의 색상을 나타냅니다. 그려진 글꼴입니다.

예제는 다음과 같습니다.

<?php
    $a = &#39;young and beautiful&#39;;
    $img = imagecreate(300, 200);
    imagecolorallocate($img, 255, 255, 255);
    $green = imagecolorallocate($img, 0, 255, 0);
    imagestring($img, 5, 5, 50, $a, $green);
    imagestringup($img, 2, 200, 180, $a, $green);
    imagechar($img, 3, 80, 100, $a, $green);
    imagecharup($img, 4, 100, 100, $a, $green);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>
로그인 후 복사
출력 결과:

텍스트도 그릴 수 있는 imagettftext() 함수도 있습니다. 차이점은 TrueType 글꼴을 사용할 수 있다는 점입니다. Windows 시스템의 확장명. Ttf 형식의 글꼴이며 구문 형식은 다음과 같습니다.


imagettftext(resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text)
로그인 후 복사

그 중 $size는 문자의 크기를 나타내고 $angle은 각도를 나타내며 이 각도의 0도는 왼쪽에서 오른쪽으로 읽은 텍스트를 나타내며 값 시계 반대 방향으로 증가합니다. $fontfile은 사용할 트루타입 글꼴 파일의 경로를 나타냅니다. $textb는 그려질 문자열을 나타냅니다.

PHP를 통해 그래픽 인증 코드를 그리는 방법은 무엇입니까?

예제는 다음과 같습니다.

<?php
    $str1 = &#39;young and beautiful&#39;;
    $font = &#39;C:\Windows\Fonts\simhei.ttf&#39;;
    $img = imagecreate(300, 300);
    imagecolorallocate($img, 255, 255, 255);
    $green = imagecolorallocate($img, 0, 255, 0);
    imagettftext($img, 16, 45, 40, 250, $green, $font, $str1);
    header(&#39;Content-type:image/jpeg&#39;);
    imagejpeg($img);
    imagedestroy($img);
?>
로그인 후 복사

출력 결과:


imagettftext() 함수를 통해 텍스트 그리기가 완료됩니다.

PHP를 통해 그래픽 인증 코드를 그리는 방법은 무엇입니까?그래픽 인증 코드 그리기PHP를 통해 그래픽 인증 코드를 그리는 방법은 무엇입니까?PHP를 통해 그래픽 인증 코드를 그리는 방법은 무엇입니까?

이전에 텍스트와 이미지 그리기에 대해 배운 후, 이전에 배운 지식을 활용하여 그래픽 인증 코드를 그릴 수 있습니다. 로그인 인터페이스 인증 코드에서 그래픽을 자주 접하게 됩니다. 만드는 방법을 살펴보세요. 먼저 최종 효과를 살펴보겠습니다.

🎜🎜🎜🎜🎜이러한 효과를 얻으려면 몇 가지 단계를 거쳐야 합니다. 🎜🎜첫 번째 단계는 필요한 캔버스를 준비하는 것입니다. 캔버스. 그런 다음 생성하려는 문자열을 준비하고 캔버스에 간섭 패턴을 그린 다음 이미지를 출력하고 마지막으로 리소스를 해제합니다. 🎜🎜예제는 다음과 같습니다: 🎜🎜
<?php
check_code();
function check_code($width = 100, $height = 50, $num = 4, $type = &#39;jpeg&#39;) {
 $img = imagecreate($width, $height);
 $string = &#39;&#39;;
 for ($i = 0; $i < $num; $i++) {
 $rand = mt_rand(0, 2);
 switch ($rand) {
 case 0:
 $ascii = mt_rand(48, 57); //0-9
 break;
 case 1:
 $ascii = mt_rand(65, 90); //A-Z
 break;
 case 2:
 $ascii = mt_rand(97, 122); //a-z
 break;
 }
 //chr()
 $string .= sprintf(&#39;%c&#39;, $ascii);
 }
 //背景颜色
 imagefilledrectangle($img, 0, 0, $width, $height, randBg($img));
 //画干扰元素
 for ($i = 0; $i < 50; $i++) {
 imagesetpixel($img, mt_rand(0, $width), mt_rand(0, $height), randPix($img));
 }
 //写字
 for ($i = 0; $i < $num; $i++) {
 $x = floor($width / $num) * $i + 2;
 $y = mt_rand(0, $height - 15);
 imagechar($img, 5, $x, $y, $string[$i], randPix($img));
 }
 //imagejpeg
 $func = &#39;image&#39; . $type;
 $header = &#39;Content-type:image/&#39; . $type;
 if (function_exists($func)) {
 header($header);
 $func($img);
 } else {
 echo &#39;图片类型不支持&#39;;
 }
 imagedestroy($img);
 return $string;
}
//浅色的背景
function randBg($img) {
 return imagecolorallocate($img, mt_rand(130, 255), mt_rand(130, 255), mt_rand(130, 255));
}
//深色的字或者点这些干 扰元素
function randPix($img) {
 return imagecolorallocate($img, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120));
}
?>
로그인 후 복사
🎜출력 결과: 🎜🎜🎜🎜🎜🎜🎜🎜추천 학습: "🎜PHP Video Tutorial🎜"🎜

위 내용은 PHP를 통해 그래픽 인증 코드를 그리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!