2013-02-21 21 views
6

Es ist lange Stunden, dass ich noch auf der Suche nach einer Antwort auf dieses Problem bin .. Alle Lösungen, die ich finde, sind um den Namen der Schriftart zu fangen, aber ich bin mir ziemlich sicher, das ist nicht meine Problem.PHP - imagettftext funktioniert nicht und GD installiert

Es ist wie GD sieht ist installiert

array(11) { 
    ["GD Version"]=> 
    string(27) "bundled (**2.0.34 compatible**)" 
    ["FreeType Support"]=> 
    bool(false) 
    ["T1Lib Support"]=> 
    bool(false) 
    ["GIF Read Support"]=> 
    bool(true) 
    ["GIF Create Support"]=> 
    bool(true) 
    ["JPEG Support"]=> 
    bool(true) 
    ["PNG Support"]=> 
    bool(true) 
    ["WBMP Support"]=> 
    bool(true) 
    ["XPM Support"]=> 
    bool(true) 
    ["XBM Support"]=> 
    bool(true) 
    ["JIS-mapped Japanese Font Support"]=> 
    bool(false) 
} 

Above Sie meine GD-Unterstützung sehen. Meine PHP-Version ist 5.3 und ich verwende Linux.

Ich habe einige verschiedene Codebeispiele von verschiedenen Websites ausprobiert und keine funktioniert. image ist für mich arbeiten, aber ich brauche imagettftext zur Arbeit zu kommen ..

Dies ist der letzte Code, den ich jetzt-

<?php 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 

// Set the content-type 
header('Content-Type: image/png'); 

// Create the image 
$im = imagecreatetruecolor(400, 100) or die("Can't create image!"); 

// Create some colors 
$white = imagecolorallocate($im, 255, 255, 255); 
$grey = imagecolorallocate($im, 128, 128, 128); 
$black = imagecolorallocate($im, 0, 0, 0); 
imagefilledrectangle($im, 0, 0, 399, 29, $white); 

// The text to draw 
$text = 'Testing'; 
// Replace path by your own font path 
$font = 'arial.ttf'; 

// Add some shadow to the text 
imagettftext($im, 20, 0, 11, 21, $grey, 'arial.ttf', $text); 

// Add the text 
imagettftext($im, 20, 0, 10, 20, $black, 'arial.ttf', $text); 

// Using imagepng() results in clearer text compared with imagejpeg() 
imagepng($im); 
imagedestroy($im); 
?> 

Ergebnis versucht haben: Siehttp://www.7679679.com/app/test-ansi.php

+0

Wenn Sie Header gesetzt zu bekommen ... kurz vor imagepng, was errormsg bekommen Sie? – michi

+0

Gibt es bei PHP irgendwelche Fehler/Hinweise? Was gibt die Funktion "imagettftext" zurück? Es sollte Array von Punkten oder falsch bei Fehler zurückgeben. probiere '$ text_result = imagettftext (...); if ($ text_result === false) {echo ("FEHLER");} else print_r ($ text_result); '. Eine andere Sache, wenn Sie Ihr neu erstelltes Bild füllen, haben Sie ein Pixel auf Höhe und füllte nur 29 Pixel von 100 auf Breite, ist das absichtlich? – Buksy

+0

Wie hast du dieses Array gedruckt? – Saswat

Antwort

6

Hinweis nicht installiert Freier Typ:

["FreeType Support"]=> 
    bool(false) 

Diese Funktion benötigt sowohl die GD-Bibliothek als auch die »FreeType-Bibliothek.

Sie müssen die Free Type-Bibliothek installieren, bevor Sie diese Funktion verwenden können.

versuchen dieses Paket installieren: s freetype, freetype-devel

Wenn Sie PHP kompilieren können Sie sicher, dass Sie während der Kompilierung aktivierten Freetype machen hinzugefügt:

--with-freetype-dir=/usr/include/freetype2/ --with-freetype 

Oder wenn Sie mit etwas so als YUM oder APT-GET sollte es wirklich einfach sein, diese Bibliotheken zu installieren, und eine schnelle Suche ob Google mit Starthilfe.

+0

Anforderung für Freetype-Unterstützung ist im PHP-Handbuch dokumentiert, siehe http://php.net/manual/en/function.imagefttext.php und http://php.net/manual/en/function.imagettfbbox.php – dregad

13

hatte das gleiche Problem, mit Freetype installiert, Lösung

war ist
$font = "./Arial.ttf"; // <--- put ./ in front of filename 
+1

Dies scheint die beste Antwort :) – JayKandari

+0

Dies funktionierte für mich :) Thx viel – kodmanyagha

+1

Arbeitete für mich! Lol! Kannst du bitte im Detail erklären, warum das funktioniert? –

0

Andrew ist richtig, die php manual for imagettftext heißt Freetype imagettftext, imagettfbox zu verwenden, erforderlich, und andere.Die meisten Menschen die GD devel Paket Freetype automatisch installieren:

Fedora/Redhat:

yum install gd gd-devel php-gd 

Debian/Ubuntu:

apt-get install php5-gd libgd2-xpm libgd2-xpm-dev 

Dieser Fehler war wahrscheinlich in Ihre Protokolle:

PHP Fatal error: Call to undefined function imageTTFText() 
2

Nun, ich habe auch ein Problem um

$font='arial.tff'; 

Ich glaube, Sie absoluten Pfad zum $ font wie

$font="c:/windows/fonts/arial.ttf"; 

bieten sollte ich nehme an, Sie sind ein Windows-Benutzer. und entfernen

header('Content-Type:image/png'); 

den wirklichen Fehler