Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как измерить ширину и высоту текста в пикселях?
 
 автор: SerMax   (25.05.2005 в 10:44)   письмо автору
 
 

Дело в следующем, создаются картинки с различными текстами внутри.
Так, как текст может меняться, то ширину картинки не возможно задать по-умолчанию, а вот как определить какой ширины будет текст (в пикселях) при данном фонте не получается.

Заранее благодарен за помощь!

   
 
 автор: SerMax   (25.05.2005 в 13:06)   письмо автору
 
   для: SerMax   (25.05.2005 в 10:44)
 

Я так понимаю мой вопрос безнадёжен :)

   
 
 автор: cheops   (25.05.2005 в 13:27)   письмо автору
 
   для: SerMax   (25.05.2005 в 13:06)
 

Нужно дождаться Дизайнера - он спец в GDLib - точно скажет безнадёжен вопрос или нет :)))

   
 
 автор: glsv (Дизайнер)   (25.05.2005 в 14:18)   письмо автору
 
   для: SerMax   (25.05.2005 в 10:44)
 

Вы GDLib-ом картинки рисуете?
А шрифт какой используете? Если TrueType, то вам поможет функция imagettfbbox(). Она вычисляет размеры прямоугольника, в который вписана строка text, написанная TrueType-шрифтом.

Если нет, то приведите функцию, которая выводит текст. Здесь и посмотрим.

http://www.softtime.ru/dic/id_dic=376&id_group=15

   
 
 автор: SerMax   (25.05.2005 в 15:03)   письмо автору
 
   для: glsv (Дизайнер)   (25.05.2005 в 14:18)
 

<?php
header("Content-type: image/png");
include ("functions.php");
// Set the content-type
$tabula='content'.$lang;
$g= sql("SELECT name FROM '$tabula' WHERE id='$id'");
$gg=mysql_fetch_array($g);
// Create the image
$length=mb_strlen($gg[0], 'UTF-8');


$im = imagecreate(20+$length*8, 28);

// Create some colors
$white = imagecolorallocate($im, 185, 193, 205);
$grey = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// The text to draw
$text = $gg[0];

// Replace path by your own font path
$font = 'arial.ttf';

// Add some shadow to the text
imagettftext($im, 12, 0, 11, 21, $grey, $font, $text);

// Add the text

imagettftext($im, 12, 0, 10, 20, $black, $font, $text);
}
// Using imagepng() results in clearer text compared with imagejpeg()

imagepng($im);

imagedestroy($im);
?>

   
 
 автор: SerMax   (25.05.2005 в 18:02)   письмо автору
 
   для: SerMax   (25.05.2005 в 15:03)
 

Всё получилось даже проще, чем было в самом начале :)

<?php
header("Content-type: image/gif");
include ("functions.php");
$tabula='content'.$lang;
$g= sql("SELECT name FROM '$tabula' WHERE id='$id'");
$gg=mysql_fetch_array($g);

$length=mb_strlen($gg[0], 'UTF-8');

$size=12;
$font = 'arial.ttf';
$massiv=imagettfbbox ($size, 0, $font, $gg[0]);
$imgname='blanc.gif';
$text = $gg[0];
$im1 = @imagecreatefromgif ($imgname);
$im = imagecreate(20+($massiv[2]), 27);


imagecopyresampled($im, $im1, 0, 0, 0, 0, 20+$massiv[2], 27, 97, 27);
$white = imagecolorallocate($im, 255, 255, 255);
imagettftext ($im, $size, 0, 10, 20, $white, $font, $text);

imagegif($im);

imagedestroy($im);
?>

   
 
 автор: SerMax   (25.05.2005 в 15:11)   письмо автору
 
   для: glsv (Дизайнер)   (25.05.2005 в 14:18)
 

Используем именно TrueType.
Спасибо за инфо сейчас будем пробовать.

   
 
 автор: SerMax   (25.05.2005 в 15:42)   письмо автору
 
   для: glsv (Дизайнер)   (25.05.2005 в 14:18)
 

Огромное спасибо, всё работает как нельзя лучше!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования