2013-02-21 14 views
6

Sono molte ore che sto ancora cercando risposta a questo problema .. Tutte le soluzioni che trovo sono intorno a prendere il nome del font ma sono abbastanza sicuro che questo non è il mio problema.PHP - imagettftext non funziona e GD installato

Sembra GD è installato

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) 
} 

Sopra potete vedere il mio supporto GD. La mia versione PHP è 5.3 e sto funzionando su Linux.

Ho provato alcuni esempi di codice diversi da diversi siti Web e nessuno funziona. ImageString funziona per me, ma ho bisogno di ottenere imagettftext di lavorare ..

Questo è l'ultimo codice che ho provato ora-

<?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); 
?> 

Risultato:http://www.7679679.com/app/test-ansi.php

+0

Se si imposta intestazione ... poco prima imagepng, quello ErrorMsg cosa si ottiene? – michi

+0

php ti dà qualche errore/avviso? Cosa restituisce la funzione 'imagettftext'? Dovrebbe restituire array di punti o falso in caso di errore. prova '$ text_result = imagettftext (...); if ($ text_result === false) {echo ("ERROR");} else print_r ($ text_result); '. Un'altra cosa, quando stai riempiendo la tua immagine appena creata, hai lasciato un pixel in altezza e riempito solo 29 pixel di 100 in larghezza, è apposta? – Buksy

+0

come hai stampato quell'array ??? – Saswat

risposta

6

Avviso voi non è installato il tipo gratuito:

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

Questa funzione richiede sia la libreria GD che la libreria »FreeType.

Prima di poter utilizzare questa funzione è necessario installare la libreria Tipo libero.

tenta l'installazione di questi pacchetti: s freetype, freetype-devel

Se si è compilato il PHP è possibile assicurarsi freetype Hai aggiunto attivata durante la fase di compilazione:

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

O se si utilizza qualcosa come come YUM o APT-GET dovrebbe essere molto semplice installare quelle librerie e una ricerca rapida su google con start.

+0

Il requisito per il supporto di Freetype è documentato nel manuale PHP, vedi http://php.net/manual/en/function.imagettftext.php e http://php.net/manual/en/function.imagettfbbox.php – dregad

13

avuto lo stesso problema, con installato FreeType, soluzione era

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

Questa sembra la migliore risposta :) – JayKandari

+0

Questo ha funzionato per me :) Grazie mille – kodmanyagha

+1

Ha funzionato per me! Lol! Puoi spiegare in dettaglio perché funziona? –

0

Andrew è giusto, il php manual for imagettftext afferma FreeType è necessario per utilizzare imagettftext, imagettfbox, e altri.La maggior parte delle persone il pacchetto devel GD installeranno automaticamente FreeType:

Fedora/RedHat:

yum install gd gd-devel php-gd 

Debian/Ubuntu:

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

Questo errore è stato probabilmente nei log:

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

Beh, ho anche avuto problemi con lo

$font='arial.tff'; 

penso che si dovrebbe fornire percorso assoluto del $ carattere come

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

suppongo sei un utente di Windows. e rimuovere

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

per ottenere il vero errore

Problemi correlati