Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Работа с графикой и БД
 
 автор: Proger   (12.07.2007 в 02:17)   письмо автору
 
 

Хм... наверное эта тема будет интересна многим.
Вообщем суть:
есть картинка ну скажем где то 750 пикселей ширины и 300 высота...

Задача: взять из БД данные для переменных, всего их 10, данные подрезаються и становяться строками, 1 переменная и 1 строка соответсвенно ;)

Конечная задача: сделать скрипт который открывает файл оригинального имаджика 750х300, и в рэндомных позициях эти переменные (их содержимое) раскидывает по картинке, чтобы они не накладывались на друг друга....
Потом это всё должно сохраниться в другую картинку JPEG.
И ещё надо получить координаты каждой надписи, чтобы потом с помощью maps сделать ссылки с этих надписей!

Тробл: совсем не использовал maps and GD. Подскажите как такое сделать? Может хоть примерный код кто-нибудь предложит? Думаю всем будет интересно такое реализовать!
Помогите плиз!

   
 
 автор: JIEXA   (12.07.2007 в 04:25)   письмо автору
 
   для: Proger   (12.07.2007 в 02:17)
 

В чем собственно проблема?
Данные из БД вытащить сможете?
Дальше выбераете 10 координат. К ним можете прибавлять случайное число, чтобы надписи рандомно распологались.
Функцией imagefttext пишете текст на картинки.
Попытайтесь... будут проблемы - пишите, поможем.

   
 
 автор: Proger   (12.07.2007 в 07:13)   письмо автору
 
   для: JIEXA   (12.07.2007 в 04:25)
 

Порылся немного, сделал вот что:

<?php
//получаем данные из БД
//$p1 = 'Первая строка';
//$p2 = 'Вторая';
// и т.д.

header("Content-type: image/jpeg");
$im = @imagecreatefromjpeg("bg.jpg");
//тут всё что нужно!
imagejpeg ($im);
?>

Пока не понимаю две вещи, обязательно иметь файл шрифта на хосте, чтобы его подгружать?
И как не выводить а сохранять картинку в дир-ю?

   
 
 автор: Петр   (12.07.2007 в 11:11)   письмо автору
 
   для: Proger   (12.07.2007 в 07:13)
 


<?php
// Перезапись файла;
$fh=fopen($src,'w');
fclose($fh);
// $img - идентификатор картинки;
// $src - имя файла;
// $quality -качество изображения, лучше использовать 70 или 100;
imagejpeg($img$src$quality); 
?>

   
 
 автор: Proger   (12.07.2007 в 18:28)   письмо автору
 
   для: Петр   (12.07.2007 в 11:11)
 

А насчёт imagetext кто-нить добавит? В мануале только параметры и никакого описания :(

   
 
 автор: bronenos   (12.07.2007 в 18:46)   письмо автору
 
   для: Петр   (12.07.2007 в 11:11)
 

оффтоп.. никогда не любил функции работы с изображениями хотя бы потому что начинаются не с image_ а в одно слово черт возьми

   
 
 автор: Proger   (12.07.2007 в 21:23)   письмо автору
 
   для: bronenos   (12.07.2007 в 18:46)
 

ВСё вроде получаеться! Только вот вместо русского текст на картинке еврейские какие то значки :( Чего делать?

   
 
 автор: Hidden Demon   (12.07.2007 в 21:27)   письмо автору
 
   для: Proger   (12.07.2007 в 21:23)
 

http://softtime.ru/forum/read.php?id_forum=1&id_theme=28497

   
 
 автор: Proger   (12.07.2007 в 21:39)   письмо автору
 
   для: Hidden Demon   (12.07.2007 в 21:27)
 

Это не то - я пишу с помощью imagestring на картинке

   
 
 автор: Hidden Demon   (12.07.2007 в 21:40)   письмо автору
 
   для: Proger   (12.07.2007 в 21:39)
 

пробовали?

   
 
 автор: Proger   (12.07.2007 в 21:47)   письмо автору
 
   для: Hidden Demon   (12.07.2007 в 21:40)
 

Конечно - тот же еврит!

   
 
 автор: Valick   (13.07.2007 в 00:08)   письмо автору
 
   для: Proger   (12.07.2007 в 21:47)
 

-

   
 
 автор: Proger   (13.07.2007 в 00:24)   письмо автору
 
   для: Valick   (13.07.2007 в 00:08)
 

И что это за дефис или минус? Не понял прикола!

   
 
 автор: Valick   (13.07.2007 в 07:49)   письмо автору
 
   для: Proger   (13.07.2007 в 00:24)
 

По другому не удаляются сообщения.
Просто я не заметил ссылки Hidden Demon (12.07.2007 в 21:27) и написал примерно такую же.

   
 
 автор: Proger   (13.07.2007 в 03:35)   письмо автору
 
   для: Proger   (12.07.2007 в 02:17)
 

Ну чего никто не поможет с этом проклятой кодировкой? :((((

   
 
 автор: Unkind   (13.07.2007 в 04:08)   письмо автору
 
   для: Proger   (13.07.2007 в 03:35)
 

Пишите в UTF-8.

   
 
 автор: Proger   (13.07.2007 в 07:49)   письмо автору
 
   для: Unkind   (13.07.2007 в 04:08)
 

Это как простите? iconv? Не помогает! Или как?

   
 
 автор: Valick   (13.07.2007 в 08:06)   письмо автору
 
   для: Proger   (13.07.2007 в 07:49)
 

Зачем вы используете imagestring, чем вам не нравиться imageTtfText ?
imagestring на сколько я знаю, не работает с ttf шрифтами.
Отом как заставить imagestring "понимать по-русски" (если уж так хотите) можно прочитать здесь. (сам не смотрел, ссылка из книги)

   
 
 автор: sms-send   (13.07.2007 в 08:27)   письмо автору
 
   для: Valick   (13.07.2007 в 08:06)
 

Скорее уже здесь.

   
 
 автор: Proger   (13.07.2007 в 13:01)   письмо автору
 
   для: Valick   (13.07.2007 в 08:06)
 

А imagettftext? Он 100% если закачать скажем Arial то будет отображать рашан буквы?

   
 
 автор: Valick   (13.07.2007 в 14:04)   письмо автору
 
   для: Proger   (13.07.2007 в 13:01)
 

Попробуйте

<?php 
//************************** 
// Функции 
//************************** 
// 
// Функция преобразует текст из кодировки iso8859-5 в Unicode-entities. 
// Ее необходимо вызывать перед запуском imageTtfText(), чтобы корректно  
// отображать русские буквы. Аргумент $from задает исходную кодировку 
// страницы (см. convert_cyr_string() для описания значений параметра). 
function toUnicodeEntities($text$from="w"
 {  
  
$text convert_cyr_string($text$from"i"); 
  
$uni "";  
  for (
$i=0$len=strlen($text); $i<$len$i++) 
   {  
    
$char $text{$i};  
    
$code ord($char);  
    
$uni .= ($code>175)? "&#" . (1040+($code-176)) . ";" $char;  
   }  
  return 
$uni;  
 } 


$file="img/1.jpg"
$size=getImageSize($file); 
$image=imageCreateFromString(file_get_contents($file)); 
$string toUnicodeEntities("Мой сайт http://mysite.ru"); 
$yellow imageColorallocate($image2552500); 
imageTtfText($image100$size[0]-17030$yellow"arial.ttf"$string); 
imageRectangle($image1010,$size[0]-10,$size[1]-10,$yellow);  

header("Content-type: image/jpeg"); 
imageJpeg($image'img/proba.jpg'); 

?> 
<img src=img/proba.jpg alt=Изображение <?php echo $size[3];?>>

   
 
 автор: Proger   (13.07.2007 в 23:47)   письмо автору
 
   для: Valick   (13.07.2007 в 14:04)
 

Спасибо большое - помогло!!! =)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования