|
|
|
| Дело в следующем, создаются картинки с различными текстами внутри.
Так, как текст может меняться, то ширину картинки не возможно задать по-умолчанию, а вот как определить какой ширины будет текст (в пикселях) при данном фонте не получается.
Заранее благодарен за помощь! | |
|
|
|
|
|
|
|
для: SerMax
(25.05.2005 в 10:44)
| | Я так понимаю мой вопрос безнадёжен :) | |
|
|
|
|
|
|
|
для: SerMax
(25.05.2005 в 13:06)
| | Нужно дождаться Дизайнера - он спец в GDLib - точно скажет безнадёжен вопрос или нет :))) | |
|
|
|
|
|
|
|
для: SerMax
(25.05.2005 в 10:44)
| | Вы GDLib-ом картинки рисуете?
А шрифт какой используете? Если TrueType, то вам поможет функция imagettfbbox(). Она вычисляет размеры прямоугольника, в который вписана строка text, написанная TrueType-шрифтом.
Если нет, то приведите функцию, которая выводит текст. Здесь и посмотрим.
http://www.softtime.ru/dic/id_dic=376&id_group=15 | |
|
|
|
|
|
|
|
для: 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 в 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);
?> | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(25.05.2005 в 14:18)
| | Используем именно TrueType.
Спасибо за инфо сейчас будем пробовать. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(25.05.2005 в 14:18)
| | Огромное спасибо, всё работает как нельзя лучше! | |
|
|
|