이전 글에서 "PHP에서 다각형, 호, 타원을 그리는 방법은?"을 가져왔습니다. (자세한 그림 및 텍스트 설명) "에서는 PHP에서 그래픽을 그리는 방법을 자세히 소개합니다. 이번 글에서는 PHP에서 그래픽 인증코드를 생성하는 방법을 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다!
PHP의 이미지 그리기에 대한 이전 기사를 통해 이에 대한 지식을 활용하여 확장, 즉 일상적인 로그인 페이지에서 자주 사용하는 그래픽 확인 코드를 만들 수 있습니다. 그래픽 확인 코드는 어떻게 형성되나요? , 그래픽 인증 코드를 만드는 방법을 배우고 싶다면 먼저 PHP에서 텍스트를 그리는 방법을 살펴 보겠습니다.
텍스트 그리기
텍스트를 그리는 데 일반적으로 사용하는 함수는 다음과 같습니다.
imagechar()
: 가로로 문자 그리기 imagechar()
: 水平绘制一个字符
imagecharup()
: 垂直绘制一个字符
imagestring()
: 水平绘制一行字符串
imagestringup()
: 垂直绘制一行字符串
imagettftext()
imagecharup ()
: 세로로 문자 그리기
imagestring()
: 가로로 문자열 한 줄 그리기 imagestringup() code> : 세로로 문자열 한 줄 그리기 <p><br></p>
<p><br></p>
<code>imagettftext()
: TrueType 글꼴을 사용하여 이미지에 텍스트 쓰기
imagechar(resource $image, int $font, int $x, int $y, string $c, int $color)
<?php $a = 'young and beautiful'; $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('Content-type:image/jpeg'); imagejpeg($img); imagedestroy($img); ?>
imagettftext(resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text)
<?php $str1 = 'young and beautiful'; $font = 'C:\Windows\Fonts\simhei.ttf'; $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('Content-type:image/jpeg'); imagejpeg($img); imagedestroy($img); ?>
imagettftext() 함수를 통해 텍스트 그리기가 완료됩니다.
그래픽 인증 코드 그리기
이전에 텍스트와 이미지 그리기에 대해 배운 후, 이전에 배운 지식을 활용하여 그래픽 인증 코드를 그릴 수 있습니다. 로그인 인터페이스 인증 코드에서 그래픽을 자주 접하게 됩니다. 만드는 방법을 살펴보세요. 먼저 최종 효과를 살펴보겠습니다.
🎜🎜🎜🎜🎜이러한 효과를 얻으려면 몇 가지 단계를 거쳐야 합니다. 🎜🎜첫 번째 단계는 필요한 캔버스를 준비하는 것입니다. 캔버스. 그런 다음 생성하려는 문자열을 준비하고 캔버스에 간섭 패턴을 그린 다음 이미지를 출력하고 마지막으로 리소스를 해제합니다. 🎜🎜예제는 다음과 같습니다: 🎜🎜<?php check_code(); function check_code($width = 100, $height = 50, $num = 4, $type = 'jpeg') { $img = imagecreate($width, $height); $string = ''; 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('%c', $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 = 'image' . $type; $header = 'Content-type:image/' . $type; if (function_exists($func)) { header($header); $func($img); } else { echo '图片类型不支持'; } 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를 통해 그래픽 인증 코드를 그리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!