Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Определить координаты текста на картинке

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
tauros
Отправлено: 07 Января, 2011 - 12:19:31
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Янв. 2011  


Помог: 0 раз(а)




Добрый день, господа Улыбка
Подскажите пожалуйста, как грамотно решить такую задачу:
Есть текст, его нужно сделать картинкой, чтобы на ней был только текст и ничего лишнего, писаться текст будет несколькими шрифтами и размерами. Заранее высота и ширина картинки неизвестны.
CODE (htmlphp):
скопировать код в буфер обмена
  1. $size = '50';
  2. $font = "arial.ttf";
  3. $text = "Hello, World!!!";

Я дошел до функции imagettfbbox, получил, как я понял, ширину и высоту самого текста:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $box = imagettfbbox($size, 0, $font, $text);
  2. if($box['0'] <= $box['6']) {$l_c = $box['0'];} else {$l_c = $box['6'];}
  3. if($box['2'] >= $box['4']) {$r_c = $box['2'];} else {$r_c = $box['4'];}
  4. if($box['5'] <= $box['7']) {$t_c = $box['5'];} else {$t_c = $box['7'];}
  5. if($box['1'] >= $box['3']) {$b_c = $box['1'];} else {$b_c = $box['3'];}
  6. $text_width = $r_c - $l_c;
  7. $text_height = $b_c - $t_c;
  8. $image = imagecreatetruecolor($text_width, $text_height);
  9. imagefill($image, 0, 0, 0);
  10. imagettftext($image, $size, 0, $x, $y, 0xffffff, $font, $text); //Тут главная проблема
  11. header("content-type: image/png");
  12. imagepng($image);
  13. imagedestroy($image);

Никак не могу понять, как правильно рассчитать $x и $y, чтобы текст лег ровно на изображение, если $x=0, а $y=$text_height, то получится картинка как в аттаче: по горизонтали текст съехал вправо, а по вертикали вниз.
Прикреплено изображение (Нажмите для увеличения)
image.png

(Отредактировано автором: 07 Января, 2011 - 12:23:18)

 
 Top
JustUserR
Отправлено: 07 Января, 2011 - 21:08:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




tauros пишет:
Как правильно рассчитать $x и $y, чтобы текст лег ровно на изображение
В случае если формирование целевого изображения включающего автоматическую сгенерированную текстовую надпись в действительности является эквивалентным предполагаемому приложению - то для осуществления коррекции достаточно использование соответствующего сдвига на один пиксель - причиной появления такого эффекта является разница в индексации номера пикселя и размера рассматриваемого блока - для которых обеспечивается отсчет с нуля и единицы соответственно


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB