Нанесение текста на рисунок

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 19 мар 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    здравствуйте.
    Есть картинка.
    Как нанести на саму картинку слово значение переменной $text, посредством РНР.
    И будет ли эта надпись обновляться? Или один раз закрепится на картинке и уже не изменить?
    В переменной строка вида "Осталось 11 недель" либо "Осталась 1 неделя" и т.д.
    Вот картинка
    [​IMG]
     
  2. bondaf

    bondaf Постоялец

    Регистр.:
    16 мар 2010
    Сообщения:
    85
    Симпатии:
    20
    Миникласс для размещения надписи (водного знака) по срередине картинки.
    PHP:
    class watermark_middle
    {
      function 
    create_watermark$main_img_obj$text$font$r 128$g 128$b 128$alpha_level 100 )
      {
       
    $width imagesx($main_img_obj);
       
    $height imagesy($main_img_obj);
       
    $text " ".$text." ";

       
    $c imagecolorallocatealpha($main_img_obj$r$g$b$alpha_level);
       
    $size = (($width+$height)/2)*1/strlen($text);
       
    $box  imagettfbbox $size$angle$font$text );
       
    $x $width/abs($box[4] - $box[0])/2;
       
    $y $height/abs($box[5] - $box[1])/2;
       
    imagettftext($main_img_obj,$size 0$x$y$c$font$text);
       return 
    $main_img_obj;
      }
    }
    используем

    PHP:
    $watermark = new watermark_middle();
    $img imagecreatefromjpeg($source_jpeg);
    $im=$watermark->create_watermark($img$text_to_be_written$fonts_file$red$green$blue$alpha_level);
    imagejpeg($im,"result3.jpg");

    При каждой загрузке странице надпись можешь менять

    Если что-то непонятно - спрашивай)
     
    Amaranth и LEXAlForpostl нравится это.
  3. Amaranth

    Amaranth Создатель

    Регистр.:
    22 сен 2009
    Сообщения:
    17
    Симпатии:
    5
    какую нагрузку это создает? Есть сайтик на vps с 6000 уников, пыхтит, но работает.. Скрипт выше не положит?)
     
  4. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    6000 уников это реальная или максимальная нагрузка?
     
  5. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Если текст остаётся неизменным в течении часа и более, то целесобразнее сделать кэш этой картинки. пхп тяжело работает с большими картинками и лучше сервер не напрягать понапрасну.
     
  6. bondaf

    bondaf Постоялец

    Регистр.:
    16 мар 2010
    Сообщения:
    85
    Симпатии:
    20
    Конечно, с такой посещаемостью, если картинка будет генериться каждый раз, нагрузка будет. Как уже сказали, очень многое зависит и от размера обрабатываемой картинки.
    Поэтому надо смотреть либо в сторону уменьшения размеров, либо генерить раз в N-ое кол-во времени, или по какому-нить событию.

    P.S. сам я накладывал текст и графические водные знаки только при аплоаде фоток из админки. Поэтому людям шел просто jpeg.
     
  7. sigmas

    sigmas Создатель

    Регистр.:
    8 мар 2010
    Сообщения:
    21
    Симпатии:
    1
    думаю лучше текст менять кроном, например раз в день, или чаще если это требуется
     
  8. Vereschagin

    Vereschagin Писатель

    Регистр.:
    11 янв 2007
    Сообщения:
    9
    Симпатии:
    2
    Просто в механизме генерации картинки, надо предусмотреть очистку файла-кэша, а как часто запускать механизм генерации уже есть много вариантов по настройке, от крона, до nginx-а.
     
Статус темы:
Закрыта.