Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Скрипт добавления текста на изображение

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Neutron333

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В общем проблема такая. Надо сделать PHP скрипт   - юзер зашел на страницу, ввел  в поле текст, выбрал изображение, нажал "создать" и ему показалась картинка с его надписью.  
 
 
Примерно так
   
 
Вывод картинки - это уже не главное, главное осуществить добавление текста на картинку
Долго сидел, искал, понял только что надо осуществлять это через GDlib  с помощью функции imagettftext
 
пример функции

Код:
 
<?php
header ("Content-type: image/gif");
$im = imagecreate (400, 30);
$black = imagecolorallocate ($im, 0, 0, 0);
$white = imagecolorallocate ($im, 255, 255, 255);
imagettftext ($im, 20, 0, 10, 20, $white, "/path/arial.ttf", "Testing...Omega: &#937;");
imagegif ($im);
imagedestroy ($im);
?>
 

 
описание функции
_http://www.webmaster.ee/phpfaq/f/imagettftext.html
 
 
Надеюсь на вашу помощь.

Всего записей: 7 | Зарегистр. 05-05-2008 | Отправлено: 00:19 05-05-2008 | Исправлено: Neutron333, 00:21 05-05-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Neutron333
PHP+GD2: наложение текста = Ошибка + каракули


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:21 05-05-2008
Neutron333

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
PHP+GD2: наложение текста = Ошибка + каракули  

 
C этим более менее понятно... Я не могу разобраться, как сделать такую форму, как на картинке и приделать к этому скрипту

Всего записей: 7 | Зарегистр. 05-05-2008 | Отправлено: 01:07 05-05-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Neutron333

Цитата:
Я не могу разобраться, как сделать такую форму, как на картинке

проблемы с html? воспользуйтесь wysiwyg редактором.. например dreamweaver и "нарисуйте" ее.

Цитата:
как на картинке и приделать к этому скрипту

должно быть очевидно, раз
Цитата:
C этим более менее понятно...

 
в чем конкретно проблема?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:10 05-05-2008
Neutron333

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Форму нарисовать не прооблема, я пока не очень хорошо разбираюсь в PHP.
Как передать значение, введенное в поле скрипту (переменная? но как именно - не понятно) - приделать всё это действие к кнопке
Не разобраться как при нажатии  на кнопку выводилось полученое изображение
 
PS Извиняюсь, если не понятно объясняю

Всего записей: 7 | Зарегистр. 05-05-2008 | Отправлено: 01:20 05-05-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Neutron333

Цитата:
Как передать значение, введенное в поле скрипту (переменная? но как именно - не понятно) - приделать всё это действие к кнопке
Не разобраться как при нажатии  на кнопку выводилось полученое изображение  

php тут не при чем.. пока что все вопросы, что тут заданы, не имеют отношения к php, а имеют отношение к html
создаете форму.. в ней элементы вида  
<input type=text name=mytext>
 
после отправки формы методом POST получить данные в php можно как
$var=$_POST['mytext'];
 

Цитата:
Не разобраться как при нажатии  на кнопку выводилось полученое изображение  

как и было сказано.. форма сабмитится в скрипт, а он уже генерит картинку с текстом аналогично тому, как по ссылке.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:24 05-05-2008
Neutron333

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
<form action="?????"
 method="post" name="text">
 
Появился вопрос - какое назначение указывать в form action  
 

Код:
 
<html>
<head>
<title>test</title>
</head>
<body>
<br>
<form action="  "
 method="post" name="text">
Ваш текст :
<input name="text" size="20"
value="name" type="text"><br>
<input value="Отправить"
 type="submit"></form>
 
 
<?php    
header("Content-type: image/png");    
$var=$_POST['mytext'];
$im = @imagecreate(50, 100)    
    or die("Cannot Initialize new GD image stream");    
$background_color = imagecolorallocate($im, 255, 255, 255);    
$text_color = imagecolorallocate($im, 233, 14, 91);    
imagestring($im, 1, 5, 5,  $var, $text_color);    
imagepng($im,"new.png");    
imagedestroy($im);    
?>
 
</body>
</html>
 
 


Всего записей: 7 | Зарегистр. 05-05-2008 | Отправлено: 02:02 05-05-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Neutron333

Цитата:
Появился вопрос - какое назначение указывать в form action  
 

мда.. вам бы для начала html подучить, а потом уже браться за php.
action указывает на скрипт, куда и отсылаются данные из формы.
на тот, в котором и будет этот код

Цитата:
<?php    
header("Content-type: image/png");    
$var=$_POST['mytext'];
$im = @imagecreate(50, 100)    
    or die("Cannot Initialize new GD image stream");    
$background_color = imagecolorallocate($im, 255, 255, 255);    
$text_color = imagecolorallocate($im, 233, 14, 91);    
imagestring($im, 1, 5, 5,  $var, $text_color);    
imagepng($im,"new.png");    
imagedestroy($im);    
?>  



----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:04 05-05-2008
Neutron333

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, почти получилось
 

Цитата:
мда.. вам бы для начала html подучить, а потом уже браться за php.

Я  и не возражаю... просто появилась залача, как могу, так и решаю
 
В общем сделал 2 файла
 
page.html

Код:
<html>
<head>
  <title></title>
</head>
<body>
<br>
<form action="png.php"
 method="post" name="text">
Ваш текст :
  <input name="text" size="20"
 value="name" type="text"><br>
  <input value="Отправить"
 type="submit"></form>
<br>
</body>
</html>
 

 
png.php

Код:
<?php      
header("Content-type: image/png");      
$var=$_POST['text'];  
$im = @imagecreate(350, 20)      
    or die("Cannot Initialize new GD image stream");      
$background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 0, 0, 0);    
imagestring($im, 1, 5, 5, $var, $text_color);      
imagepng($im,"$var.png");      
imagedestroy($im);      
?>  
 

 
В результате создается файл с текстом из поля (текст.png)
 
Черный текст на белом фоне, как менять цвета разобрался
Но вот как фоном подложить другое изображение?  
Пол спарвочника изрыл - не нашел
 
И еще вопрос - как сделать так, чтобы названия файлов не повторялись?

Всего записей: 7 | Зарегистр. 05-05-2008 | Отправлено: 02:31 05-05-2008 | Исправлено: Neutron333, 02:33 05-05-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Neutron333

Цитата:
В результате создается файл с текстом из поля  

зачем вам файл то?  

Цитата:
Но вот как фоном подложить другое изображение?  

плохо смотрите
imagecreatefrompng и так далее в зависимости от первоначального типа файла
 

Цитата:
И еще вопрос - как сделать так, чтобы названия файлов не повторялись?  

проверять, что такого нет.. и далее в зависимости от параметров.. например можно использовать md5 для создания хэша на основе текста и времени генерации.. или просто использовать timestamp с точностью до миллисекунды

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:34 05-05-2008 | Исправлено: Cheery, 02:36 05-05-2008
Neutron333

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
плохо смотрите  
imagecreatefrompng и так далее в зависимости от первоначального типа файла


Код:
 
function LoadPNG ($imgname) {
    $im = @imagecreatefrompng ($imgname); /* попытка открыть */
    if (!$im) { /* проверить, удачно ли */
        $im  = imagecreate (150, 30); /* создать пустое изображение */
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc  = imagecolorallocate ($im, 0, 0, 0);
        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
        /* вывести errmsg */
        imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
 

 
Добавил в page.html еще одно поле, которое передает в png.php переменную $imgname (адрес картинки  ( bar.png))
 
Но скрестить imagecreatefrompng и imagettftext не получается...  
 
Если не сложно разжуйте мне пожалуйста, как имея 2 переменные $var (текст) и $imgname (адрес png картинки) получить в итоге картинку с наложеным текстом...  

Всего записей: 7 | Зарегистр. 05-05-2008 | Отправлено: 03:05 05-05-2008 | Исправлено: Neutron333, 03:05 05-05-2008
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Neutron333

Цитата:
Если не сложно разжуйте мне пожалуйста, как имея 2 переменные $var (текст) и $imgname (адрес png картинки) получить в итоге картинку с наложеным текстом...

написали же уже все.. в чем проблема то?  

Цитата:
    header("Content-type: image/png");  
        $im = @imagecreatefrompng ($imgname);
        $tc  = imagecolorallocate ($im, 0, 0, 0);  
        imagestring ($im, 1, 5, 5, $var, $tc);
        imagepng($im);      
        imagedestroy($im);      
 

это без проверок и тд  и тп.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:25 05-05-2008
Neutron333

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо большое за помощь - во всем разобрался, все сделал и приделал создание уникального имени файла.

Всего записей: 7 | Зарегистр. 05-05-2008 | Отправлено: 06:53 05-05-2008
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Скрипт добавления текста на изображение


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru