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]   

> Без описания
android
Отправлено: 16 Января, 2015 - 21:01:15
Post Id


Посетитель


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


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




В общем имеется сайт, на нем есть скрипт который изменяет масштаб картинки (на котором изображен произвольный текст) я не понимаю как он работает, может светлые умы подскажут? Улыбка

Варианты с разным масштабом:
1) http://easy[dot]uprinting[dot]com/getTex[dot][dot][dot]5&density=96
2) http://easy[dot]uprinting[dot]com/getTex[dot][dot][dot]&density=120
3) http://easy[dot]uprinting[dot]com/getTex[dot][dot][dot]&density=150

Вот что я нахамутал Растерялся :
PHP:
скопировать код в буфер обмена
  1.  
  2. $font = 'arial.ttf';
  3.  
  4.  
  5. $text = urldecode('Test%20%20lost%20big%20message%20');
  6.  
  7.        
  8. $fontsize = 9;
  9. $density = 96;
  10. $_width = 2.45;
  11.  
  12. $canvas = new Imagick();
  13. $draw = new ImagickDraw();
  14.  
  15. if( $density < 2 )
  16. {
  17.         $size = 2;
  18. }
  19. else
  20. {
  21.         $size = $_width;
  22. }
  23.  
  24. $draw->setFont($font);
  25. $draw->setFontSize($fontsize*$size);
  26.  
  27. $width = round($_width*$density);
  28.  
  29. ///////
  30. $_string = '';
  31. $data = explode(' ', $text);
  32. foreach( $data as $word )
  33. {
  34.         $string = $_string . ' ' . $word;
  35.         $metrics = $canvas->queryFontMetrics($draw, $string);
  36.         if( $metrics['textWidth'] > $width )
  37.         {
  38.                 $_string .= $_string ? "\n" . $word : $word;
  39.         }
  40.         else
  41.         {
  42.                 $_string .= $_string ? ' ' . $word : $word;
  43.         }
  44. }
  45. ///////
  46.  
  47. $metrics = $canvas->queryFontMetrics($draw, $_string);
  48.  
  49. $draw->annotation(0, $metrics['ascender'], $_string);
  50.  
  51. $canvas->newImage($width, $metrics['textHeight'], 'none');
  52. $canvas->setImageFormat('png');
  53. $canvas->drawImage($draw);
  54.  
  55. //$canvas->resizeimage($width, $metrics['textHeight'], 20, 0.9, false);
  56.  
  57.  
  58. header("Content-Type: image/png");
  59. echo $canvas;
  60.  


Не могу понять принцип (
(Добавление)
Хочу заметить, вместе с масштабом меняется и размер шрифта

(Отредактировано автором: 16 Января, 2015 - 21:01:50)

 
 Top
android
Отправлено: 20 Января, 2015 - 23:49:54
Post Id


Посетитель


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


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




Жаль что никто не знает(
 
 Top
broshurkaplus
Отправлено: 27 Января, 2015 - 07:59:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




вижу два варианта:
1 если вам не нужно перерисовывать с другим текстом - так зачем вам отправлять запрос на сервер и перерисовывать картинку? может можно сделать кнопку/поле/формудля ввода и лишь изменять соответствующие атрибуты у картинки средствами яваскрипта (или квери если Вы его на сайте используета)
2 если действительно требуется перерисовывать картинку - так отрисовывайте ее заново, а там уже сожно и шрифт и размер текста и угол повората менять и тд...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB