Показать сообщение отдельно
Непрочитано 20.01.2012, 20:28   #8
Изгнанные

Автор темы (Топик Стартер) Re: imagecreatetruecolor()

Цитата:
Сообщение от lKingHell Посмотреть сообщение
В своё время реализовал так, только надо добавить картинки и рандомно по номеру их выбирать. Получалось так:
PHP код:
<?php
//Количество символов
define('CHARS'5);

//Функция генерации произвольной строки
function generationStr()
{
    
$num CHARS;
    
$range '35';//$range - диапазон алфавита начиная с нуля
    
$chars '1234567890aeiouybcdfghjklmnpqrstvwxz';
    
    for(
$i 0$i $num$i++)
    {
        
$str .= $chars{rand(0$range)};
    }
    return 
$str;
}

//Открываем сессию
session_start();

//Генерируем капчу
$captcha generationStr();

//Записываем капчу в сессию
unset($_SESSION['captcha']);
$_SESSION['captcha'] = $captcha;

//Говорим, что этот файл картинка
header('Content-type: image/jpg');

//Открываем изображение
$img imagecreatefromjpeg('images\noise1.jpg');

//Включаем сглаживание
imageantialias($imgtrue);

//Генерируем путь до шрифта
$font 'fonts\verdana.ttf';

//Добавляем текст
$x 10;
$y 30;
for(
$i 0$i CHARS$i++)
{
    
//Генерируем цвет
    
$color imagecolorallocate($imgrand(50200), rand(50200), rand(50200));

    
$angle rand(020);
    
$size rand(1220);
    
imagettftext($img20$angle$x$y$color$font$_SESSION['captcha'][$i]);
    
$x += 20;
}

//Отдаём изображение
imagejpeg($img""90);
    
?>
так и я могу, но эту капчу можно взломать. Идеальная капча обаладет след. функциями:

1. Слепленные символы
2. Волновое искажение по x и y координатам.
3. Рандомные линии перекрывающие символы (не обязательно) - усложнит чтение символов для человека.
Gambit_J вне форума Отправить сообщение для Gambit_J с помощью ICQ Отправить сообщение для Gambit_J с помощью Skype™ Ответить с цитированием