![]() |
Генерация изображения со случайным кодом (captcha)Источник: easywebscripts
Чаще всего изображения со случайным кодом (так называемая captcha) используются для защиты от флуда (автоматизированного ввода сообщений), некоторые сервисы находят им применнение в качестве раздражителя (для перехода на платный вариант). В общем, может пригодиться. PHP код следующий: 01$width = 100; //Ширина изображения02$height = 60; //Высота изображения03$font_size = 16; //Размер шрифта04$let_amount = 4; //Количество символов, которые нужно набрать05$fon_let_amount = 30; //Количество символов на фоне06$font = "fonts/cour.ttf"; //Путь к шрифту07 08//набор символов09$letters = array("a","b","c","d","e","f","g"); 10//цвета11$colors = array("90","110","130","150","170","190","210"); 12 13$src = imagecreatetruecolor($width,$height); //создаем изображение 14$fon = imagecolorallocate($src,255,255,255); //создаем фон15imagefill($src,0,0,$fon); //заливаем изображение фоном16 17for($i=0;$i < $fon_let_amount;$i++) //добавляем на фон буковки18{19//случайный цвет20$color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100);21//случайный символ22$letter = $letters[rand(0,sizeof($letters)-1)];23//случайный размер 24$size = rand($font_size-2,$font_size+2); 25imagettftext($src,$size,rand(0,45),26rand($width*0.1,$width-$width*0.1),27rand($height*0.2,$height),$color,$font,$letter);28}29 30for($i=0;$i < $let_amount;$i++) //то же самое для основных букв31{32$color = imagecolorallocatealpha($src,$colors[rand(0,sizeof($colors)-1)],33$colors[rand(0,sizeof($colors)-1)],34$colors[rand(0,sizeof($colors)-1)],rand(20,40));35$letter = $letters[rand(0,sizeof($letters)-1)];36$size = rand($font_size*2-2,$font_size*2+2);37$x = ($i+1)*$font_size + rand(1,5); //даем каждому символу случайное смещение38$y = (($height*2)/3) + rand(0,5); 39$cod[] = $letter; //запоминаем код40imagettftext($src,$size,rand(0,15),$x,$y,$color,$font,$letter);41}42 43$cod = implode("",$cod); //переводим код в строку44 45header ("Content-type: image/gif"); //выводим готовую картинку46imagegif($src);Через HTML такое изображение вызывается стандартно: 1<img src="sec_pic.php" alt="защитный код">Скачать скрипт генерации защитного кода с полным набором символов и возможностью подключения своих шрифтов можно здесь secpic.zip |