Текст -> изображение

  • Автор темы HollySpirut
  • Дата начала

HollySpirut

Guest
Текст -> изображение

Надо вывести текст в виде изображения. Делаю так:
PHP:
header('Content-type: image/png');
define('FONT_NAME', 'arial.ttf');    
define('FONT_SIZE', 7);        // Не забываем преобразовать текст в кодировку Unicode    
$text = win2uni($text);      
$coord = imagettfbbox(
       FONT_SIZE,  // размер шрифта
       0,          // угол наклона шрифта (0 = не наклоняем) 
      FONT_NAME,  // имя шрифта, а если точнее, ttf-файла
       $text       // собственно, текст       
);   

$width = $coord[2] - $coord[0];
$height = $coord[1] - $coord[7]; 
$image = imagecreatetruecolor( $width,$height)      or die('Cannot create image');      
$X = (WIDTH - $width) / 2;    
$Y = (HEIGHT - $height) / 2;
      imagettftext(      $image,      // как всегда, идентификатор ресурса
      FONT_SIZE,   // размер шрифта
      0,           // угол наклона шрифта
      $X, $Y,      // координаты (x,y), соответствующие левому нижнему
                   // углу первого символа
      0xFFFFFF,    // цвет шрифта
      FONT_NAME,   // имя ttf-файла 
     $text    );      
imagepng($image);    
imagedestroy($image);  
}
В чем ошибка?
 

HollySpirut

Guest
текст не помещается в рисунок(несколько строк)
 

HollySpirut

Guest
Popoff, посмотри
PHP:
win2uni("Заходит мужик в ювелирный магазин. Девущка-продавщица:
- Ой, мужчина, как хорошо что вы к нам зашли, ко дню Святого Валентина у
нас две недели 20% скидки, купите что-нибудь в подарок вашей девушке.
Вот кулончик золотой в форме сердечка, вашей девушке очень понравится.
Мужик грустно:
- У меня нет девушки...
Продавщица кокетливо:
- Не может быть, такой видный, красивый, высокий мужчина и нет девушки?
Почему?!
Мужик грустно:
- Жена не разрешает...");
 

SiMM

Новичок
Работает. Ищите косяки у себя. С координатами, например.
PS: сколько раз уже говорилось - приводить в форуме надо код, который можно запустить. А не код, который ещё нужно напильником дорабатывать на предмет инициализации нужных переменных и констант.
 

HollySpirut

Guest
PHP:
header('Content-type: image/png');
define('FONT_NAME', 'arial.ttf');    
define('FONT_SIZE', 7);        // Не забываем преобразовать текст в кодировку Unicode    
$text = win2uni("Заходит мужик в ювелирный магазин. Девущка-продавщица:
- Ой, мужчина, как хорошо что вы к нам зашли, ко дню Святого Валентина у
нас две недели 20% скидки, купите что-нибудь в подарок вашей девушке.
Вот кулончик золотой в форме сердечка, вашей девушке очень понравится.
Мужик грустно:
- У меня нет девушки...
Продавщица кокетливо:
- Не может быть, такой видный, красивый, высокий мужчина и нет девушки?
Почему?!
Мужик грустно:
- Жена не разрешает...");
      
$coord = imagettfbbox(
       FONT_SIZE,  // размер шрифта
       0,          // угол наклона шрифта (0 = не наклоняем) 
      FONT_NAME,  // имя шрифта, а если точнее, ttf-файла
       $text       // собственно, текст       
);   

$width = $coord[2] - $coord[0];
$height = $coord[1] - $coord[7]; 
$image = imagecreatetruecolor( $width,$height)      or die('Cannot create image');      
$X = $width / 2;    
$Y = $height / 2;
      imagettftext(      $image,      // как всегда, идентификатор ресурса
      FONT_SIZE,   // размер шрифта
      0,           // угол наклона шрифта
      $X, $Y,      // координаты (x,y), соответствующие левому нижнему
                   // углу первого символа
      0xFFFFFF,    // цвет шрифта
      FONT_NAME,   // имя ttf-файла 
     $text    );      
imagepng($image);    
imagedestroy($image);  
}
 

ksnk

прохожий
А что такое WIDTH и HEIGHT и какое они имеют отношение к $image, который создается совсем с другими границами?

-~{}~ 10.03.06 17:17:

Еще вот! Распечатай $coord. Он совсем не обязан начинаться с 0,0. У меня, во всяком случае, начинаеися с (-1,-8)
 

HollySpirut

Guest
ksnk,
1)спс, я и не заметил. удалил(предыдушее сообщение)

-~{}~ 10.03.06 22:46:

Спасибо ребята. "// координаты (x,y), соответствующие левому нижнему углу первого символа "
 
Сверху