Генерация изображения со случайным кодом (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); //создаем фон 15 imagefill( $src ,0,0, $fon ); //заливаем изображение фоном 16 17 for ( $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); 25 imagettftext( $src , $size ,rand(0,45), 26 rand( $width *0.1, $width - $width *0.1), 27 rand( $height *0.2, $height ), $color , $font , $letter ); 28 } 29 30 for ( $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 ; //запоминаем код 40 imagettftext( $src , $size ,rand(0,15), $x , $y , $color , $font , $letter ); 41 } 42 43 $cod = implode( "" , $cod ); //переводим код в строку 44 45 header ( "Content-type: image/gif" ); //выводим готовую картинку 46 imagegif( $src ); Через HTML такое изображение вызывается стандартно: 1 < img src = "sec_pic.php" alt = "защитный код" > Скачать скрипт генерации защитного кода с полным набором символов и возможностью подключения своих шрифтов можно здесь secpic.zip |