프로젝트 코드 소스 : https://github.com/LVQINGDONG/learn_php/ 다운로드 할 PHPGD_numberIMG 브랜치를 찾습니다.
1. PHP GD 라이브러리 설치 및 구성
php 서버 구성 폴더에서 php.ini를 찾아 파일을 열고 "; extension = php_gd2.dll"코드를 찾은 다음 ";"앞의 세미콜론을 제거합니다.
여기서는 wamp 서버를 사용하고 php.ini 파일은 wamp → bin → php → php7.0.4 디렉토리에 있습니다.
구성이 완료된 후 구성이 성공했는지 테스트합니다.
새 PHP 파일을 만들고 테스트 할 코드를 입력합니다.
// GD 라이브러리를 사용할 수 있는지 테스트 if (extension_loaded ( 'gd' )) { echo "can be used" ; foreach (gd_info () as $ cate => $ value ) echo " $ cate : $ value <br> " ; } else { echo "gd를 사용할 수 없음 " ; }성공하면 브라우저에 다음이 표시됩니다.
2. PHP GD 라이브러리 사용 지침
PHP GD 라이브러리를 사용하여 이미지를 만드는 네 단계가 있습니다.
① 캔버스를 만듭니다. 모든 그리기는 배경 레이어에서 완료해야하며 그래픽의 후속 처리는이 배경 레이어를 기반으로합니다.
원리 : 캔버스는 실제로 이미지 정보를 저장하기 위해 메모리에 임시 메모리 영역을 엽니 다.
② 이미지를 그립니다. 이전 캔버스에서 생성 된 배경 레이어를 기반으로 php 이미지 기능을 사용하여 이미지 색상을 설정하고 그래픽을 그립니다.
③ 출력 이미지. 이미지를 그린 후에는 이미지를 특정 형식으로 서버에 저장하거나 표시 할 페이지에 직접 출력해야합니다.
④ 자원을 공개한다. 이미지가 출력 된 후에는 메모리에 저장된 캔버스 정보 영역이 존재하지 않으며,이 영역이 차지하는 메모리 리소스를 제때 지워야합니다.
셋, 그래픽 검증 코드를 실현
① image_create1.php 입력 코드를 만들고 먼저 PHP GD 라이브러리를 사용하여 출력을 시도하고 코드의 특정 기능에 대한 주석을 참조하십시오.
<? php / ** * 작성자 : PhpStorm. * 사용자 : lenovo * 날짜 : 2018/6/3 * 시간 : 20:44 * / GD 라이브러리 사용 가능 여부 테스트 // if (extension_loaded ( 'gd')) { / / echo "사용 가능"; // foreach (gd_info () as $ cate => $ value) // echo "$ cate : $ value <br>"; //} // else { // echo " gd "; //} header ( "Content-type : image / png " ) ; // 생성 된 그림의 형식 설정 $ im = imagecreate ( 120 , 30 ) ; // 새 캔버스 $ bg = imagecolorallocate ( $ 메신저 , 0 ,0 , 255 ) ; // 배경 설정 $ sg = imagecolorallocate ( $ im , 255 , 255 , 255 ) ; // 전경 설정 imagefill ( $ im , 120 , 30 , $ bg ) ; // 배경 이미지 문자열 채우기 ( $ im , 7 , 8 , 5 , "image create" , $ sg ) ; // fill string imagepng ( $ im ) ; // output image imagedestroy ( $ im ) ;// 이미지 리소스 삭제
효과를 보려면 브라우저를 엽니 다.
② 사용 방법을 알고 나서 image_create2.php를 생성하고 인증 코드를 생성하면 다음과 같은 코드가 생성됩니다.
<? php / ** * PhpStorm 제작. * 사용자 : lenovo * 날짜 : 2018/6/3 * 시간 : 21:08 * / header ( "Content-type : image / png" ) ; $ im = imagecreate ( 80 , 20 ) ; $ bg = imagecolorallocate ( $ im , 255 , 255 , 0 ) ; $ sg = imagecolorallocate ( $ im , 0 , 0 , 0 ) ; $ ag = imagecolorallocate ( $ im , 231 ,104,50); imagefill($im,120,30,$bg); $str="qwertyuipasdfghjklxcvbnm123456789QWERTYUIPASDFGHJKLXCVBNM"; $len=strlen($str)-1; for ($i=0;$i<4;$i++){ $str1=$str[mt_rand(0,$len)]; imagechar($im,7,16*$i+7,2,$str1,$sg); } for($i=0;$i<100;$i++){ imagesetpixel($im,rand()%80,rand()%20,$ag); } imagepng($im); imagedestroy($im);
打开浏览器看效果:
到这里PHP GD验证码就做好了。
---------------------------------------------------------------------------------------------------
用到的函数及其功能: