[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Текст из картинки
XCross
Вот такая у меня голова больная =)

Хочу из картинки делать текст.

Щас алгоритм поясню и поймете чего хочу.

1)Узнаем размеры изображения(px по горизонтали и px по вертикали);
2)Читаем изображение попиксельно и узнаем цвет каждого пикселя
3)Рисуем точку(текст) цветом этого пикселя

Всю эта кашу(2,3 пункты) в 2х циклах представляю. Иль может в массив стряпать, а потом уже выводить?

Получится такое или нет?



Спустя 3 минуты, 15 секунд (28.06.2011 - 10:39) quickxyan написал(а):
ты хочешь антикапчу сделать?

Спустя 1 минута, 42 секунды (28.06.2011 - 10:40) XCross написал(а):
Да не, просто хочу что-нибудь сделать, используя GD.

Спустя 1 минута, 2 секунды (28.06.2011 - 10:41) quickxyan написал(а):
kmaks
сделай капчу)))

Спустя 2 минуты, 32 секунды (28.06.2011 - 10:44) XCross написал(а):
Да хз как она работает


Цитата
Вот такая у меня голова больная =)

Хочу из картинки делать текст.

Щас алгоритм поясню и поймете чего хочу.

1)Узнаем размеры изображения(px по горизонтали и px по вертикали);
2)Читаем изображение попиксельно и узнаем цвет каждого пикселя
3)Рисуем точку(текст) цветом этого пикселя

Всю эта кашу(2,3 пункты) в 2х циклах представляю. Иль может в массив стряпать, а потом уже выводить?

Получится такое или нет?


Ведь смотри, мы можем представить изображение как двухмерный массив? Да? Тогда все оч просто wink.gif

Спустя 3 минуты, 59 секунд (28.06.2011 - 10:48) quickxyan написал(а):
могу скинуть свою самописную. посмотришь, что да как)


Спустя 1 минута, 58 секунд (28.06.2011 - 10:50) XCross написал(а):
Дак я уже столько исходников смотрел. Я не пойму как она сверяет, куда записывает сгенерированный текст?

Спустя 5 минут, 16 секунд (28.06.2011 - 10:55) quickxyan написал(а):
не знаю как во всех исходниках, а у меня все просто.

забиваеться массив например 6-ма символами. потом эти символы рисуються на картинке, а сам массив переделывается в строку и передается сессионной переменной для проверки того, что ввел юзер. вроде так насколько я помню smile.gif

Спустя 4 минуты, 20 секунд (28.06.2011 - 10:59) XCross написал(а):
Тогда все гуд, говоришь в сессию пихать? Попробую, но сначала все-таки вот это(первый пост) попробую осуществить. smile.gif

Спустя 2 минуты, 42 секунды (28.06.2011 - 11:02) quickxyan написал(а):
генерация самой капчи.

captcha.php

<?php
session_start();
$myImage = imagecreate(240,60);
$black = imagecolorallocate($myImage, 0, 0, 0);

$white = imagecolorallocate($myImage, 255, 255, 255);
$red = imagecolorallocate($myImage, 255, 102, 102);
$green = imagecolorallocate($myImage, 0, 255, 102);
$lightblue = imagecolorallocate($myImage, 51, 255, 204);
$blue = imagecolorallocate($myImage, 0, 0, 255);
$yellow = imagecolorallocate($myImage, 255, 255, 0);
$purple = imagecolorallocate($myImage, 255, 0, 102);

$color[] = $red;
$color[] = $green;
$color[] = $lightblue;
$color[] = $blue;
$color[] = $yellow;
$color[] = $purple;

$num = array('1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'm', 'n', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
$coordx = array('10', '50', '90', '130', '170', '210');

shuffle($num);
shuffle($color);
for($i = 0; $i < 6; $i++)
{
$captcha[] = $num[$i];
}
$string = implode($captcha);

$_SESSION['captcha'] = $string;

for ($i = 0; $i <6; $i++)
{
imagefttext($myImage, 30, rand(-10, 15), $coordx[$i], rand(35,50), $color[$i], "comic.ttf", $captcha[$i]);
}

header("Content-type: image/png");
imagepng($myImage);
imagedestroy($myImage);
?>


файл в котором показывается картинка с капчей и поле для ввода.
cap.php

<?php
session_start();
echo '<img src = "captcha.php">';
$captcha = $_SESSION['captcha'];

if (isset($_GET['posted']))
{
if($_GET['text'] == $captcha)
{
//echo 'yes';
echo '<script language="JavaScript"> window.location.href = "1.php"</script>';
}
else
{
echo '<br><font size=+2 color = "red">Неправильный ввод</font>';
}

}

echo "<form action='cap.php' method='GET'>
<input type = 'hidden' name = 'posted'>
<br>
<input type = 'text' name = 'text'>
<input type = 'submit' value = 'Отправить'>
</form>"
;
?>


если будут вопросы спрашивай :)

Спустя 3 минуты, 19 секунд (28.06.2011 - 11:05) XCross написал(а):
Ок

Спустя 12 минут, 38 секунд (28.06.2011 - 11:18) XCross написал(а):
Ниче не выводит :(

<?php
error_reporting(E_ALL);

$image_source = imagecreatefromjpeg('1.jpg');

header("Content-type: image/jpeg");

imagejpeg($image_source);
imagedestroy($image_source);
?>

Спустя 6 минут, 1 секунда (28.06.2011 - 11:24) bulgakov написал(а):

<?php
error_reporting(E_ALL);

$image_source = imagecreatefromjpeg('1.jpg');

header("Content-type: image/jpeg");

imagejpeg($image_source);
imagedestroy($image_source); // а зачем в конце уничтожать картинку?
?>


Спустя 1 минута, 43 секунды (28.06.2011 - 11:26) XCross написал(а):
Дак нужно =)

Даже пример c php.su не завелся =(

Вот этот:

<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>

Спустя 3 минуты, 33 секунды (28.06.2011 - 11:29) XCross написал(а):
Думаю, что что-то с библиотекой GD, включить ее немогу в панели управления сервером.

Спустя 19 минут, 58 секунд (28.06.2011 - 11:49) quickxyan написал(а):
вот кстати то, что я тебе дал в действии

Спустя 4 минуты, 45 секунд (28.06.2011 - 11:54) XCross написал(а):
Кульно wink.gif


_____________
Обмен Ukash на WebMoney
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.