Файл: _src/captcha.php
Строк: 35
<?
require '../_system/core.php';
$to = 1;
$do = 9;
for ($i = 1; $i < $system['captcha_count']; $i++) {
$to .= 1;
$do .= 9;
}
$text = mt_rand($to, $do);
$_SESSION['captcha'] = $text;
/* Создание нового объекта imagick */
$im = new Imagick();
/* Создание нового изображения. Будет использоваться как шаблон заливки */
$im->newPseudoImage(50, 50, 'gradient:' . $system['captcha_color1'] . '-' . $system['captcha_color2']);
//$im->rotateImage(new ImagickPixel(), $text);
/* Создаём объект imagickdraw */
$draw = new ImagickDraw();
/* Запускаем новый шаблон с названием "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);
/* Смешиваем градиент с шаблоном */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);
/* Закрываем шаблон */
$draw->popPattern();
/* Используем шаблон с названием "gradient" для заливки */
$draw->setFillPatternURL('#gradient');
/* Устанавливаем размер шрифта в 52 */
$draw->setFontSize($system['captcha_size']);
$draw->setGravity(Imagick::GRAVITY_CENTER);
/* Шрифт текста */
$draw->setFont(TOOLS . 'fonts/' . $system['captcha_font']);
/* Добавляем свой текст */
$draw->annotation(0, 0, $text);
/* Создаём новый объект холста и белое изображение */
$canvas = new Imagick();
$canvas->newImage($system['captcha_width'], $system['captcha_height'], $system['captcha_background']);
/* Рисуем ImagickDraw на холсте */
$canvas->drawImage($draw);
/* устанавливаем чёрную рамку шириной 1px вокруг изображения */
$canvas->borderImage($system['captcha_bordercolor'], 1, 1);
/* Устанавливаем формат PNG */
$canvas->setImageFormat('png');
/* Вывод изображения */
header("Content-Type: image/png");
echo $canvas;
exit;
?>