Поддержка TTF в GD - не грузятся шрифты

Quest

Guest
Поддержка TTF в GD - не грузятся шрифты

Вопросик возник... Есть код -

PHP:
 <?php header("Content-type: image/png");
$im = @imagecreate(50, 400)
or die("Cannot Initialize new GD image stream");
$file='Georgia.ttf';
$back = imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 233, 14, 91);
$text = "Something Intresting";
imagettftext($im, 24, 0, 3, 43, $back, $file, $text);
imagestring($im, 1, 5, 5, $text, $text_color);
imagepng($im);
?>

По моим ожиданиям должно создаться изображение с текстом написанным шрифтом Georgia. Вместо этого - картинка не формируется вообще. При том что использование графических функции без использование TTF -работает корректно. Поддержка GD включена и работает на локалхосте.
Данный код работал на PHP 4.3.2RC, а сейчас стоит 4.3.4 Подскажите может где ошибка есть ???
 

sergadm

Новичок
1)посмотри phpinfo()
1)там дожно быть
FreeType Support enabled
FreeType Linkage with freetype
2)пропиши абсолютный путь к шрифту
3)попробуй другой шрифт например ANTQUAB.TTF
4)выкинь header и посмотри сообщения об ошибках
5)попоробуй мой пример (только пути поправь)
PHP:
<?
  header("Content-type:image/png");
  $size=15;
  $font="C:\Inetpub\wwwroot\ANTQUAB.TTF";
//  if (isset($_GET['a'])) {$string=$_GET['a'];}
//  if (isset($_GET['act'])) {$act=$_GET['act'];} else {$act=0;}
$string="dsfdfdsffd";
$act=0;
$coord=ImageTTFBBox($size,0,$font, $string);
$he=$coord[1]-$coord[5];
$we=$coord[2]-$coord[1];
$x=5;
$y=$he-2;

$im = imagecreate($we+5+$we*0.3+7,$he+5);
  $unistring='';
  $white = imagecolorallocate($im, 255,255,255);
  $black = imagecolorallocate($im, 0,0,0);
  if ($act) {$col=imagecolorallocate($im, 86,90,254);}
        else{$col=imagecolorallocate($im, 0,51,153);}
$isostring = convert_cyr_string($string, "w", "i");
for ($i=0; $i < strlen($isostring); $i++){
$char=substr($isostring,$i,1);
$charcode=ord($char);
$unistring.=($charcode>175) ? "&#" . (1040+($charcode-176)). ";" : $char;
}
$str=$unistring;
imagecolortransparent($im,$white);
imagettftext($im, $size, 0, $x, $y, $col, $font,$str);
  imagepng($im);
  imagedestroy($im);
 ?>
 

Quest

Guest
GD Support enabled
GD Version bundled (2.0.15 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled


Вот - убираю хедер - выдает что не может шрифт
подставляю абсолютный путь - безрезультатно...
 

Bocha

Guest
со шрифтом разберись конечно, но у тебя еще один проблем. Ты пишешь таким же цветом, как и фон всего изображения. (у тебя он $back). Назначь другой цвет для текста не совпадающий с $back.
 

sergadm

Новичок
может быть проблема в самом шрифте (может формт какой нибудь не тот) у меня под w2k+4.3.4 всё ок.
твой пример с моим путём к шрифту тоже работает
 

Bocha

Guest
Автор оригинала: sergadm
может быть проблема в самом шрифте (может формт какой нибудь не тот) у меня под w2k+4.3.4 всё ок.
твой пример с моим путём к шрифту тоже работает
У меня его пример, с правильным путем к шрифту, выводил надпись тем же цветом, что и фон картинки. А у тебя?
 

Bloody Eagle

Guest
У меня точно такая же проблема. На виндах все работает (стоит Денвер), но стоит перекинуть скрипт на сервер (на линухе), то шрифты перестают грузится. Абсолютный путь тоже пробовал, другой шрифт - результата ноль.
Мне интересно, а юниксовый РНР вообще ttf-ки поддерживает?
 

Bocha

Guest
Автор оригинала: sergadm
image string красным
ttf белым по белому
но это не существенно (возможно это упрощённый пример) тк говорит вобще рисунок не формируется
У меня так же.

Bloody Eagle
У меня точно такая же проблема. На виндах все работает (стоит Денвер), но стоит перекинуть скрипт на сервер (на линухе), то шрифты перестают грузится. Абсолютный путь тоже пробовал, другой шрифт - результата ноль.
Мне интересно, а юниксовый РНР вообще ttf-ки поддерживает?
я встречал несколько проблем с ttf файлами. Это зависит от версии GD-библиотеки. Попробую перечилить
1. иногда не надо добавлять '.ttf'. GD некоторых версий сама добавляет '.ttf'
2. в имени пути к файлу ttf не должно быть названий директорий с пробелом
3. попробуй realpath()
 

Bloody Eagle

Guest
У меня не Винды, а Линукс на сервере, так что \ не катит
 
Сверху