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
Jeśli ustawisz nagłówek ... tuż przed imagepng, co ErrorMsg otrzymasz? – michi
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
jak wydrukowałeś tę tablicę ??? – Saswat