> php教程 > php手册 > 본문

이미지 확인 코드를 생성하는 PHP 그래픽 작업

WBOY
풀어 주다: 2016-10-20 10:09:13
원래의
1477명이 탐색했습니다.

간편인증코드는 실제로 이미지에 몇 글자만 출력하는데, 이는 이미지스트링 기능을 통해 얻을 수 있습니다.

그러나 처리 측면에서 인증코드를 보다 안전하게 만들고 다른 프로그램이 이를 자동으로 인식하는 것을 방지하기 위해 인증코드에 대해 일부 간섭 처리를 수행해야 하는 경우가 많습니다. 간섭선 세그먼트가 그려지고 출력 문자가 기울어지며 비틀기 및 기타 작업이 수행됩니다.

imagesetpixel을 사용하여 점을 그려 노이즈 간섭을 얻을 수 있지만 한 점만 그리는 것은 거의 쓸모가 없으므로 루프를 사용하여 무작위로 그리는 경우가 많습니다.

<br>例子:
로그인 후 복사

$img = imagecreatetruecolor(100, 40);
$black = imagecolorallocate($img, 0x00, 0x00, 0x00);
$green = imagecolorallocate($img, 0x00 , 0xFF, 0x00);
$white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
imagefill($img,0,0,$white);
//임의 인증 코드 생성
$code = '';
for($i = 0; $i < 4; $i++) { //4자리 인증 코드
$code .= rand(0, 9) ;
}
imagestring($img, 5, 10, 10, $code, $black);
//잡음 간섭 추가
for($i = 0;$i<50;$i++) {
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $black) //imagesetpixel — 단일 픽셀 그리기, 구문: bool imagesetpixel ( resources $image , int $x , int $y , int $color )
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $green);
}
//인증 코드 출력
header("content-type: image/png");
imagepng($img); //이미지를 PNG 형식으로 브라우저나 파일에 출력합니다.
imagedestroy($img); //이미지 처리가 완료된 후 imagedestroy() 명령을 사용하여 이미지 리소스를 파기합니다. 메모리 해제. 이 기능은 필수는 아니지만 사용하는 것이 좋습니다.

?>

<br><br><br>
로그인 후 복사
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿