Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generowanie pliku graficznego
Forum PHP.pl > Forum > PHP
tbweb
Witam. Od jakiegoś czasu zgłębiam tajniki edycji plików graficznych w php. Jedna rzecz dotycząca generowania tekstu nie daje mi spokoju... a mianowicie..
Wrzuciłem sobie na serwer skrypt z manuala php, który generuje obrazek, skrypt z tąd:
[http://www.php.net/manual/pl/function.imagettftext.php]
(Przykład #1)

czcionkę arial.ttf zgrałem do tego samego katalogu w którym jest skrypt.

..ale niestety nie wyświetla się napis "Testing..." jak to jest w manualu, tylko błąd treści:
obrazek "...plik.php" nie może zostać wyświetlony ponieważ zawiera błędy.

usunąłem znacznik header z początku pliku i pojawił się taki komunikat (wklejam dosłownie smile.gif ):

Warning: imagettftext() [function.imagettftext]: Could not find/open font in *.php on line 20
Warning: imagettftext() [function.imagettftext]: Could not find/open font in *.php on line 23
%PNG  IHDR?Ťß?IDATxśíÔA Ŕ0ŔżçĂ?˛¤U°×öĚ,?,ó;ŕ.ad?aX@ad?aX@ad?aX@ad?aX@ad?aX@ad?aX@ad?aX@Ʋi9éÎNÓIEND?B`,

Wychodzi więc na to, że nie może wczytać czcionki.
Nazwa czcionki jest podana na pewno dobrze, bo gdyby skrypt nie znalazł wcale czcionki to pojawia się komunikat "Invalid font filename".

Proszę więc o jakąś poradę, jak wyświetlić tekst / jakiej czcionki użyć.

Nie daje mi to spokoju więc zwracam się z zapytaniem do Was.

Ps. dodam może jeszcze tylko, że skrypt sprawdzałem na dwóch różnych serwerach, obydwa obsługują generowanie grafiki w php

Pozdrawiam i bardzo proszę o odp.
Snap
Jak wrzucisz kod to może ktoś pomorze.
maly_swd
a zdefiniowales sciezke do pliku ttf?
piotr94
napisał przecież skąd ma kod ludzie...
  1. <?php
  2. // Set the content-type
  3. header('Content-type: image/png');
  4.  
  5. // Create the image
  6. $im = imagecreatetruecolor(400, 30);
  7.  
  8. // Create some colors
  9. $white = imagecolorallocate($im, 255, 255, 255);
  10. $grey = imagecolorallocate($im, 128, 128, 128);
  11. $black = imagecolorallocate($im, 0, 0, 0);
  12. imagefilledrectangle($im, 0, 0, 399, 29, $white);
  13.  
  14. // The text to draw
  15. $text = 'Testing...';
  16. // Replace path by your own font path
  17. $font = 'arial.ttf';
  18.  
  19. // Add some shadow to the text
  20. imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
  21.  
  22. // Add the text
  23. imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
  24.  
  25. // Using imagepng() results in clearer text compared with imagejpeg()
  26. imagepng($im);
  27. imagedestroy($im);

spróbuj dodać do kodu:
  1. <?php
  2. // Set the enviroment variable for GD
  3. putenv('GDFONTPATH=' . realpath('.'));
  4.  
  5. // Name the font to be used (note the lack of the .ttf extension)
  6. $font = 'SomeFont';
  7. ?>
maly_swd
zamiast: $font = 'arial.ttf';

wstaw: $font =realpath("arial.ttf");

warunek, font ttf musi byc w tym samym katalogu co plik PHP

"napisał przecież skąd ma kod ludzie..." - a tylko jasnowidz wie czy moze cos w nim zmienial.
piotr94
no w sumie macie racje tongue.gif
tbweb
Witam.

Działa yahoo.gif

wystarczyło dodać do kodu $font =realpath("arial.ttf");
tak jak napisał maly_swd :-)

Ps. nie zmieniałem nic w kodzie, jeśli tak bym zrobił to na pewno bym napisał co... chodzi przeciez o to żeby jasno przedstawić sytuacje happy.gif

Dziękuje za pomoc i pozdrawiam wszystkich.
maszti88
jak wgrać czcionke arial.ttf do katalogu skąd ją pobrać ? to jest plik o rozszerzeniu ttf ?
piotr94
http://www.google.pl/search?q=arial.ttf&am...lient=firefox-a
wgrać przez ftp haha.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.