За последние 24 часа нас посетили 21078 программистов и 1622 робота. Сейчас ищут 919 программистов ...

Нужно правильно отобразить длинный текст..

Тема в разделе "Обработка изображений средствами PHP", создана пользователем Invision, 2 янв 2011.

  1. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Есть код вывода информации на картинку, но есть проблема:

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

    $img = $_GET['i'];
    $fname = "img/stat/$img.gif";

    $hits = $row_info[0];
    $hosts = $row_info[1];
    $im = imagecreatefromgif($fname);
    if ($_GET['c'] == "b") { $color = imagecolorallocate($im, 0, 0, 0);
    } else { $color = imagecolorallocate($im, 255, 255, 255);}
    $ttf = "img/stat/Times.ttf";
    imagettftext($im, 6, 0, 52, 27, $color, $ttf ,$hits);
    imagettftext($im, 6, 0, 52, 19, $color, $ttf ,$hosts);
    header("Content-type: image/gif");
    imagegif($im);
    imagedestroy($im);
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Эх ответ не получил скажу проще:

    Если число длиньше, новые числа сдвигаются в правую часть и за картинку. Нужно чтобы если увеличивается первое число сдвигалось в лево.. Думаю просто отступ "52" с лева, но если с права у границы поставить все норм будет? как сделать)
     
  3. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    1) Определить размер прямоугольной области (в пикселях), которую займёт текст - для этого есть встроенная функция, не найдёшь - могу поискать, подсказать.
    2) Посчитать ширину текста (в пикселях) - просто математика.
    3) Рассчитать координату левого края текста так, чтобы правый встал туда, куда нужно - просто математика.
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
  5. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Сейчас посмотрю, спасибо.
    Задача сделать минимум подсчетов и максимум производительность =)
     
  6. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Время, потраченное сервером на простые математические подсчёты (типа + - * / ) можешь не учитывать при оптимизации. Можешь считать его равным нулю не зависимо от того, 3 действия выполнит сервер или 53...
     
  7. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    мм, а выполнение запросов и подсчеты в бд это как я понимаю важный момент?) если данных скажем пару десятков тысяч
     
  8. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Основное - да, запросы к б.д., работа с файлами... Работа с большими объёмами текста (всякие поиски/замены по регуляркам, но это если текста действительно много).
     
  9. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Тут какраз дело не в объеме а кол-ве данных. Файлы на сервере также постоянно проверяются методом $modif=time()-@filemtime ("cache/$crc"); и их тоже достаточно многовато будет)