Example #1
0
<?php

$root = '.';
include_once "{$root}/config.php";
include_once "{$root}/common.php";
$key = isset($_GET['k']) ? strtolower($_GET['k']) : 'default';
define('CAPTCHA_WIDTH', 150);
define('CAPTCHA_HEIGHT', 50);
/**
 * Captcha case INsensitive.
 */
$captcha = strtolower(Session::captcha($key, String::random(CAPTCHA_LENGTH)));
$image = imagecreate(CAPTCHA_WIDTH, CAPTCHA_HEIGHT);
imagecolorallocate($image, 255, 255, 255);
$color = imagecolorallocate($image, mt_rand(0, 180), mt_rand(0, 180), mt_rand(0, 180));
$border = imagecolorallocate($image, 210, 210, 210);
$shadow = imagecolorallocate($image, 180, 180, 180);
for ($i = 0, $sup = CAPTCHA_WIDTH * CAPTCHA_HEIGHT / CAPTCHA_LENGTH; $i < $sup; $i++) {
    imagesetpixel($image, mt_rand(0, CAPTCHA_WIDTH), mt_rand(0, CAPTCHA_HEIGHT), $color);
}
imagerectangle($image, 0, 0, CAPTCHA_WIDTH - 1, CAPTCHA_HEIGHT - 1, $border);
$angle = mt_rand(-3, 3);
imagettftext($image, 25, $angle, 12, 42, $shadow, "{$root}/themes/{$theme}/captcha.ttf", $captcha);
imagettftext($image, 25, $angle, 10, 40, $color, "{$root}/themes/{$theme}/captcha.ttf", $captcha);
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);