Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Text align right на рисунке

976
28 июля 2009 года
mikhalych
198 / / 04.01.2009
Дорогие друзья у меня вот такой вопрос.

Я сделал свой счетчик посещений сайта. (Считываю каждый вход в мой сайт и все подобные статистики веду)
В каждое посещение вытаскиваю из БД три вида статистики как и на ногих сайтах.
1. Общее количество посещений
2. Количество посещений за сегодня
3. Количество онлайн пользователей.

На один рисунок .gif все эти три цифры вписываю функцией ImageTTFtext. Код вывода данных на рисунок:
Код:
$pic = ImageCreateFromgif("images/counter.gif"); //открываем изображение
  if(!$pic)
  {
  echo "Не удалось открыть изображение";
  exit();
  }
  Header("Content-type: image/gif"); //указываем, что это рисунок в формате GIF
 
  $red=ImageColorAllocate($pic, 130, 10, 90); //получаем идентификатор  цвета
  $black=ImageColorAllocate($pic, 35, 35, 35); //получаем идентификатор  цвета
 
  $h = ImageSY($pic)-4; // узнаем высоту рисунка и отнимаем 4 пикселя для размещения текста
  $w = ImageSX($pic); // получаем ширину рисунка
  $font='fonts/arialbd.ttf'; //выбераем фонт
 
  ImageTTFtext($pic, 6.3, 0, $w-(strlen($ALL)*5)-20, $h-18, $black,$font , $ALL); //Общее количество посещений
  ImageTTFtext($pic, 6.3, 0, $w-(strlen($TODAY)*5)-20, $h-9, $black, $font, $TODAY); //Количество посещений за сегодня
  ImageTTFtext($pic,  6.3, 0, $w-(strlen($ONLINE)*5)-20, $h,$red, $font, $ONLINE); //Количество онлайн пользователей

 
  Imagegif($pic); //сохраняем изображение
  ImageDestroy($pic); //освобождаем память


Вся беда в том что я не могу эти 3 цифры (уже текст) выравнить по правому краю фонового рисунка на котором я пишу текст.
Можно выравнить по левому краю придав нужное значение четвертому аргументу функции ImageTTFtext.
Но мне нужно выравнить именно по правому краю. Так как длина текста каждый раз разный (изза того что не все цифры имеют одинаковую длину невозможно просчитать общюю длину текста в пикселях)
Как это делается в некоторых счетчиках (например в счетчике mail.ru) весь текст выравнен по правому краю вне зависмости от длины текста и длины цифр ?
Может сначало стоит превратить все цифры в рисунки, просчитать длину этих рисунок и отнять от длины конкретное количесвто пикселей чтоб выравнить по правому краю или етсь более практичный метод для решения вопроса ?:confused:
14
29 июля 2009 года
Phodopus
3.3K / / 19.06.2008
Код:
<?php
function imagettftextalign($image, $size, $angle, $x, $y, $color, $font, $text, $alignment='L')
{

   //check width of the text
   $bbox = imagettfbbox ($size, $angle, $font, $text);
   $textWidth = $bbox[2] - $bbox[0];
   switch ($alignment) {
       case "R":
           $x -= $textWidth;
           break;
       case "C":
           $x -= $textWidth / 2;
           break;
   }

   //write text
   imagettftext ($image, $size, $angle, $x, $y, $color, $font, $text);

}
?>
976
29 июля 2009 года
mikhalych
198 / / 04.01.2009
Большое спасибо Phodopus
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог