мне нужен алгоритм искажения изображения(текст волной или закрутить вокруг центра). нигде алгоритма самого не нашел. не нужно готовое решение на пхп. напишите хоть а какую сторону копать математика геометрия и книга может по компьютерной графике может какая т.д.(ссылки на kcaptcha.ru не давать)
Нашёл формулу для "деформации" чисто случайно(гугл вообще молчит на эту тему). Как сгладить изображение?
Сглаживание, замутнение, оконтуривание В начале создается матpица 3x3: |a b c| |d e f| |g h k| Затем делаешь цикл по изобpажению: допустим кооpдината текущей точки P(i,j), то в эту кооpдинату записываешь такое значание: P(i,j) = ( a*P(i-1,j-1)+b*P(i,j-1)+c*P(i+1,j-1)+ + d*P(i-1,j) + e*P(i,j) + f*P(i+1,j) + + g*P(i-1,j+1)+h*P(i,j+1)+k*P(i+1,j+1) ) / (a+b+c+d+e+f+g+h+k); пpи a=b=c=d=e=f=g=h=k = 1 получается сглаживание. пpи матpице: |1 0 1| |0 -4 0| |1 0 1| получается оконтуpивание. Ууу а a,b,c,d,e,f,g,h,k - это что такое?
http://www.codeproject.com/KB/GDI/antialias.aspx ебаный индус написал какую-то ***ню и смеётся надо мной
Вот тебе оригинальная капча, которую никто не пробьет. Показывается 2 капчи, но с виду это не видно (как-будто одна) и надо ввести число с 2 картинок сразу. index.php PHP: <?php session_start(); ?> <img src="captcha.php?step=1" /><img src="captcha.php?step=2" /> <form method="post"> Введите число: <input type="text" name="getСode"> <input name="sub" type=submit value="Ввод"> </form> <?php if($_POST['sub']) { if($_POST['getСode'] == $_SESSION['step1'].$_SESSION['step2']) { echo "Число введено верно"; } else { echo "Число введено неверно"; } } captcha.php PHP: <?php /******************************** * © Isis 2011 !!!!! *******************************/ session_start(); $step = isset($_GET['step']) ? intval($_GET['step']) : null; if ($step == 1) { $string = $_SESSION['step1'] = rand(100, 999); } else { $string = $_SESSION['step2'] = rand(100, 999); } $im = imagecreatetruecolor(80, 45); imagealphablending($im, false); imagesavealpha($im, true); $trans = imagecolorallocatealpha($im, 255, 255, 255, 227); $black = imagecolorallocate($im, 255, 255, 0); imagefilledrectangle($im, 0, 0, 299, 299, $trans); imagealphablending($im, true); imagettftext($im, 40, 0, 0, 48, $black, '28 Days Later.ttf', $string); header("Content-type: image/png"); imagepng($im); imagedestroy($im);
http://courses.engr.illinois.edu/ece390/archive/archive-f2000/mp/mp4/anti.html ещё дротату для линий нашёл, но всё не то... Кто-нибудь подскажет?
Блять вообщем такая ***ня полнейшая получилась PHP: // session_start(); $chars = "QWERTYUIOPASDFGHJKLZXCVBNM123456789"; // 0 нет // string -> array $chars = str_split($chars); $captcha_keystring_length = 6; // количество символов $captcha_keystring = ""; $i = 0; while ($i++ < $captcha_keystring_length) { $captcha_keystring.= $chars[array_rand($chars)]; } // $_SESSION["captcha_keystring"] = $captcha_keystring; $width = 120; $height = 40; $im = imagecreate($width, $height); // создали холст $bg = imagecolorallocate($im, 255, 255, 255); // цвет фона $font = imagecolorallocate($im, 51, 51, 51); // цвет текста imagettftext($im, 14, 0, 8, 26, $font, "/font.ttf", $captcha_keystring); $im1 = imagecreate($width, $height); $bg = imagecolorallocate($im1, 255, 255, 255); $rand1 = mt_rand(700000, 1000000) / 15000000; $rand2 = mt_rand(700000, 1000000) / 15000000; $rand3 = mt_rand(700000, 1000000) / 15000000; $rand4 = mt_rand(700000, 1000000) / 15000000; // фазы $rand5 = mt_rand(0, 3141592) / 1000000; $rand6 = mt_rand(0, 3141592) / 1000000; $rand7 = mt_rand(0, 3141592) / 1000000; $rand8 = mt_rand(0, 3141592) / 1000000; // амплитуды $rand9 = mt_rand(400, 600) / 100; $rand10 = mt_rand(400, 600) / 100; $xx = $width - 1; $yy = $height - 1; for ($x = 0; $x < $xx; ++$x) { for ($y = 0; $y <= $yy; ++$y) { $sx = $x + (sin($x * $rand1 + $rand5) + sin($y * $rand3 + $rand6)) * $rand9; $sy = $y + (sin($x * $rand2 + $rand7) + sin($y * $rand4 + $rand8)) * $rand10; $color = imagecolorat($im, $x, $y); imagesetpixel($im1, $sx, $sy, $color); // $color = imagecolorat($im, $x, $y); // imagesetpixel($im1, $x, $y, $color); } } header("Content-type: image/png"); // отправляем заголовки imagepng($im1); // выводим в браузер ?> Половину кода взял с капча.ру(как я ненавижу того мудака что выложил тот сраный пример пробую как там сделать получается какая-то ***ня скукоженная в левом углу). Что за блядство. Скажите хоть где в какой книге описано решение моей проблемы. Уже заебла эта высшая математика.
высшая математика начинается с матриц. Примитивные эффекты вроде fish-eye, wave... ну найди ёп тваю, будто я не искал