Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Generowanie obrazka i imagettftext()
corey1991
post 22.12.2009, 23:32:06
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Witam, próbuje zrobić weryfikacje obrazkową do rejestracji i robię to tak:
  1. header('Content-type: image/png');
  2.  
  3. // Create the image
  4. $im = imagecreatetruecolor(400, 300);
  5.  
  6. // Create some colors
  7. $white = imagecolorallocate($im, 0, 0, 255);
  8. $grey = imagecolorallocate($im, 128, 128, 128);
  9. $black = imagecolorallocate($im, 0, 0, 0);
  10. imagefilledrectangle($im, 0, 0, 399, 229, $white);
  11.  
  12. // The text to draw
  13. $text = 'Testing...';
  14. // Replace path by your own font path
  15. $font = 'RAVIE.ttf';
  16.  
  17. // Add the text
  18. imagettftext($im, 20, 10, 10, 50, $black, $font, $text);
  19.  
  20. // Using imagepng() results in clearer text compared with imagejpeg()
  21. imagepng($im);
  22. imagedestroy($im);


Problem tkwi w tym że na localhoście działa bez zarzutu (XAMPP version 1.6.7), a jeśli wrzucę na jakiś hosting to nie działa. Mam konto na NetHosting, pakiet obsługuje PHP 4 i 5, a wyświetla się adres strony zamiast obrazu bez żadnego błędu.
Testowałem również na darmowym koncie CBA i też obsługuje PHP a wyświetla się samo tło ale tekstu już nie wypisuje. Jaka może być przyczyna tego?

Ten post edytował corey1991 23.12.2009, 10:36:34


--------------------
projektowanie stron internetowych
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
darko
post 22.12.2009, 23:36:13
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


A masz wrzucony font RAVIE.ttf w odpowiednim miejscu ? Poza tym tworzysz gifa, a w nagłówku deklarujesz Content-type: image/jpeg

Ten post edytował darko 22.12.2009, 23:37:59


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
corey1991
post 23.12.2009, 10:38:58
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Kod poprawiłem ale teraz na NetHostingu wyświetla się napis że nie można wyświetlić obrazka ponieważ zawiera błędy, na CBA samo tło a na localhoście wszystko działa.
Plik Ravie.ttf mam w tym samym miejscu co plik z kodem.


--------------------
projektowanie stron internetowych
Go to the top of the page
+Quote Post
darko
post 23.12.2009, 10:44:25
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Może zapisz: imagepng($im, "myfile.png"); i przekieruj żeby wyświetlić? Zmieniłeś content type dla header? Upewnij się że chmod całego katalogu i skryptu jest prawidłowy (0777).


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
corey1991
post 23.12.2009, 11:13:59
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Mam coś takiego teraz ale na każdym wyświetla że obrazek zawiera błędy. Jeśli zamiast funkcji ImageTTFText użyje ImageString to obraz się wyświetla, tylko wtedy wyświetla standardową czcionką a zależy mi na innej.
  1.  
  2. chmod("RAVIE.ttf", 0777);
  3. chmod("a.php", 0777);
  4. header('Content-type: image/gif');
  5. $im = imagecreatetruecolor(400, 300);
  6. $white = imagecolorallocate($im, 100, 100, 255);
  7. $grey = imagecolorallocate($im, 128, 128, 128);
  8. $black = imagecolorallocate($im, 0, 0, 0);
  9. imagefilledrectangle($im, 0, 0, 399, 229, $white);
  10. $text = 'Testing...';
  11. $font = 'RAVIE.ttf';
  12. imagettftext($im, 20, 10, 10, 50, $black, $font, $text);
  13. imagegif($im, "myfile.gif");
  14. imagedestroy($im);


Ten post edytował corey1991 23.12.2009, 11:14:34


--------------------
projektowanie stron internetowych
Go to the top of the page
+Quote Post
darko
post 23.12.2009, 11:16:11
Post #6





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


A czy Twój dostawca hostingu nie dokleja przypadkiem kodu reklam do Twoich skryptów? Może to dlatego nie mogłeś wyświetlić obrazka z pomocą header, bo została doklejona reklama?


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
corey1991
post 23.12.2009, 11:35:57
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Na CBA możliwe, chociaż w źródłach strony niczego nie ma, ale na płatnym to raczej nie możliwe. A może coś z tą funkcją ImageTTFText jest nie tak? Jest zablokowana? Jest taka możliwość?


--------------------
projektowanie stron internetowych
Go to the top of the page
+Quote Post
darko
post 23.12.2009, 11:38:42
Post #8





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Jest taka opcja, chociaż pewnie wywaliłoby błąd, najlepiej sprawdź sobie
  1. if(function_exists('imagettftext')) {
  2. echo "ok";
  3. } else {
  4. echo "nie ma!";
  5. }



--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
corey1991
post 23.12.2009, 11:57:42
Post #9





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 29.10.2009

Ostrzeżenie: (0%)
-----


Funkcja jest. Nie mam pojęcia dlaczego na localhoście śmiga a na serwerze nie chce ;/ chyba się poddam i zrobię to z ImageString. Dzięki za pomoc winksmiley.jpg


--------------------
projektowanie stron internetowych
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:59