2013-02-21 7 views
6

To jest długa godzina, że ​​wciąż szukam odpowiedzi na ten problem .. Wszystkie znalezione przeze mnie rozwiązania dotyczą nadrobienia nazwy czcionki, ale jestem pewien, że to nie moja problem.PHP - imagettftext nie działa, a GD jest zainstalowane

Wygląda GD jest zainstalowana

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

Powyżej można zobaczyć moje poparcie GD. Moja wersja PHP to 5.3 i używam Linuksa.

Próbowałem kilka różnych przykładów kodu z różnych stron internetowych i żaden nie działa. ImageString działa dla mnie, ale muszę dostać imagettftext pracować ..

To ostatni kod Próbowałem teraz-

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

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

+0

Jeśli ustawisz nagłówek ... tuż przed imagepng, co ErrorMsg otrzymasz? – michi

+0

Czy php daje ci błąd/zawiadomienie? Co zwraca funkcja 'imagettftext'? Powinien zwrócić tablicę punktów lub fałsz w przypadku błędu. spróbuj '$ text_result = imagettftext (...); if ($ text_result === false) {echo ("BŁĄD");} else print_r ($ text_result); '. Inną rzeczą, gdy wypełniasz nowo utworzony obraz, zostawiłeś jeden piksel na wysokości i wypełniłeś tylko 29 pikseli o szerokości 100, czy to celowo? – Buksy

+0

jak wydrukowałeś tę tablicę ??? – Saswat

Odpowiedz

6

Wskazówka ci nie masz zainstalowanego bezpłatnego typu:

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

Ta funkcja wymaga zarówno biblioteki GD, jak i »biblioteki FreeType.

Przed skorzystaniem z tej funkcji konieczne będzie zainstalowanie biblioteki Free Type.

spróbuj zainstalować te pakiet: s freetype, freetype-devel

Jeśli skompilowane PHP można się upewnić Dodano aktywowany FreeType w czasie kompilacji:

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

Lub jeśli używasz coś takiego jako YUM lub APT-GET powinno być naprawdę proste zainstalowanie tych bibliotek i szybkie wyszukiwanie w google z rozpoczęciem pracy.

+0

Wymagania dotyczące wsparcia Freetype jest udokumentowane w podręczniku PHP, patrz http://php.net/manual/en/function.imagettftext.php i http://php.net/manual/en/function.imagettfbbox.php – dregad

13

miał ten sam problem, z zainstalowanym FreeType, rozwiązanie było

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

To wydaje się najlepszą odpowiedzią :) – JayKandari

+0

To zadziałało dla mnie :) Thx dużo – kodmanyagha

+1

Pracowałem dla mnie! Lol! Czy możesz wyjaśnić szczegółowo, dlaczego to działa? –

0

Andrew ma rację, php manual for imagettftext stwierdza FreeType jest wymagane do korzystania imagettftext, imagettfbox i innych.Większość ludzi pakiet devel GD zainstaluje FreeType automatycznie:

Fedora/Redhat:

yum install gd gd-devel php-gd 

Debian/Ubuntu:

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

Ten błąd był prawdopodobnie w dziennikach:

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

Cóż, mam również problem około

$font='arial.tff'; 

myślę należy podać ścieżkę bezwzględną do $ czcionki jak

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

zakładam jesteś użytkownikiem systemu Windows. i usunąć

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

aby uzyskać prawdziwy błąd

Powiązane problemy