웹 개발에서 검증 코드 이미지는 종종 양식의 자동 제출을 방지하는 데 사용됩니다. PHP는 검증 코드 이미지를 생성하기 위해 풍부한 이미지 처리 기능을 제공합니다. 그 중에서도 imageCreateFromgd2 () 는 GD2 파일에서 이미지 리소스를 만드는 데 사용되는 기능이지만 일반적으로 이미지를 직접 생성하는 대신 기존 이미지 리소스를 읽는 데 사용됩니다. 그러나 ImageGD2 () 함수를 결합하여 동적으로 생성 된 이미지를 GD2 형식으로 저장 한 다음 imageCreateFromGD2 () 를 통해 읽고 처리 할 수 있습니다.
이 기사에서는 임의의 텍스트로 검증 코드 이미지를 동적으로 생성하고 이미지를 처리하기 위해 imageCreateFromGD2 ()를 사용하는 방법을 보여줍니다.
이미지 리소스를 만듭니다
배경색 및 임의 검증 코드 텍스트를 추가하십시오
.gd2 형식으로 저장하십시오
.gd2 파일을 읽고 최종 이미지로 출력하십시오.
<?php
// Step 1: 검증 코드 이미지를 동적으로 만듭니다
$width = 150;
$height = 50;
$image = imagecreatetruecolor($width, $height);
// 배경색을 설정하십시오
$bgColor = imagecolorallocate($image, 255, 255, 255); // 하얀색
imagefill($image, 0, 0, $bgColor);
// 텍스트 색상을 설정하십시오
$textColor = imagecolorallocate($image, 0, 0, 0); // 검은색
// 무작위 검증 코드 내용을 생성합니다
$captcha = '';
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
for ($i = 0; $i < 6; $i++) {
$captcha .= $chars[rand(0, strlen($chars) - 1)];
}
// 이미지에 텍스트를 추가하십시오
$fontSize = 5; // 1 도착하다 5 글꼴 크기
$x = 10;
$y = ($height - imagefontheight($fontSize)) / 2;
imagestring($image, $fontSize, $x, $y, $captcha, $textColor);
// Step 2: 이미지를 다음과 같이 저장하십시오 .gd2 문서
$gd2Path = 'captcha.gd2';
imagegd2($image, $gd2Path);
// 원본 이미지 리소스를 파괴하십시오
imagedestroy($image);
// Step 3: 사용 imagecreatefromgd2 이미지를 읽으십시오
$gd2Image = imagecreatefromgd2($gd2Path);
// 설정 HTTP 헤더 출력 이미지
header('Content-Type: image/png');
imagepng($gd2Image);
// 정리
imagedestroy($gd2Image);
?>
PHP 설치 중에 GD 라이브러리가 활성화되어 있는지 확인하십시오 (일반적으로 기본적으로 활성화).
파일 저장 경로 captcha.gd2 에는 쓰기 권한이 있어야합니다.
후속 확인을 위해 확인 코드 내용을 $ _session 에 저장할 수 있습니다.
이 동적으로 생성 된 검증 코드 이미지를 양식으로 포함시킬 수 있습니다.
<form method="post" action="https://m66.net/verify.php">
<img src="https://m66.net/captcha.php" alt="확인 코드">
<input type="text" name="captcha" placeholder="请输入확인 코드">
<input type="submit" value="제출하다">
</form>
ImageCreateFromgd2 ()가 이미지를 생성하는 데 직접 사용되지는 않지만 먼저 GD2 파일을 생성하기 위해 ImageGD2 ()를 사용하여 읽기 및 출력을 통해 동적으로 검증 코드 이미지를 생성하는 목적을 달성 할 수 있습니다. 이 접근법은 중간 이미지 캐시 또는 이미지 템플릿이 필요한 장면에 적합합니다.
보다 복잡한 검증 코드 이미지 (왜곡, 간섭선, 글꼴 변경 등)가 필요한 경우 imageTtfText () 함수를 사용하여 TTF 글꼴을 결합하여보다 고급 기능을 달성 할 수 있습니다.
TTF 글꼴로 검증 코드 버전을 시연해야합니까?