Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php] Bilbioteka GD?, Tworzenie obrazka z php
bemol
post
Post #1





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


Jest to przykładowy plik z funkcją ImageTTFtext:
  1. <?php
  2. // Set the content-type
  3. header("Content-type: image/png");
  4.  
  5. // Create the image
  6. $im = imagecreate(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.  
  13. // The text to draw
  14. $text = 'Testing...';
  15. // Replace path by your own font path
  16. $font = 'arial.ttf';
  17.  
  18. // Add some shadow to the text
  19. imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
  20.  
  21. // Add the text
  22. imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
  23.  
  24. // Using imagepng() results in clearer text compared with imagejpeg()
  25. imagepng($im);
  26. imagedestroy($im);
  27. ?>


Jego wyniki widać pod adresem: http://ciekawe.2lokrosno.strefa.pl/obrazek.php

Dlaczego nie wyświetla tekstu na obrazku? Z tego co wiem, serwer obsługuje Biblioteke GD, więc co jest nie tak?
Co w takim razie mogę zrobić? Chcę zabezpieczyć przed spamem pewnien formularz, więc chcę umieścić kod do przepisania.
Proszę o pomoc, będę bardzo wdzięczny, bo już od około tygodnia męczę się nad tą "drobnostką".
Go to the top of the page
+Quote Post
piotrekkr
post
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


Cytat
// Replace path by your own font path
$font = 'arial.ttf';

pytanie czy wrzuciles w ten sam folder co skrypt plik arial.ttf z czcionka??
Go to the top of the page
+Quote Post
bemol
post
Post #3





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


tak, tzn zmieniłem na tahoma.ttf i wrzuciłem ją na serwer (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) choć arial też jest (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
piotrekkr
post
Post #4





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


nigdzie nie includujesz tego kodu??

moze sproboj wstawic to na samym poczatku skryptu:
  1. <?php
  2. putenv('GDFONTPATH=' . realpath('.'));
  3. ?>
Go to the top of the page
+Quote Post
bemol
post
Post #5





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


niestety nic się nie zmieniło :/
mnie już trafia jak spędzam przy tym 7 h dziennie od tygodnia :/
próbowałem już 4 różnych skryptów związanych z biblioteką GD i nic :/
można zrobić to na innej zasadzie?
Go to the top of the page
+Quote Post
piotrekkr
post
Post #6





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


moze zmien :
  1. <?php
  2. $im = @imagecreatetruecolor(400, 30)
  3. or die("Cannot Initialize new GD image stream");
  4. ?>


Ten post edytował piotrekkr 1.09.2007, 20:47:25
Go to the top of the page
+Quote Post
bemol
post
Post #7





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


jest zmiana! obrazek zrobił się ciemny (#000000?). Tekstu nie widzę, bo zapewne też ma kolor czarny. jakieś dalsze wskazówki?
http://ciekawe.2lokrosno.strefa.pl/obrazek.php

Zmieniłem $black na $white
  1. <?php
  2. imagettftext($im, 20, 0, 10, 20, $white, $font, $text);
  3. ?>


ale dalej nic nie widac :/

jeszcze spróbuje usunąć ciasteczka (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował bemol 1.09.2007, 20:56:43
Go to the top of the page
+Quote Post
piotrekkr
post
Post #8





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


Ciasteczka nic nie dadza.
Sproboj :
  1. <?php
  2. imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
  3. imagettftext($im, 20, 0, 10, 20, $white, $font, $text);
  4. ?>

i moze zmien:
  1. <?php
  2. $im = @imagecreatetruecolor(400, 80);
  3. ?>

aha i dodaj to na poczatku:
  1. <?php
  2. putenv('GDFONTPATH=' . realpath('.'));
  3. ?>


Ten post edytował piotrekkr 1.09.2007, 21:06:41
Go to the top of the page
+Quote Post
bemol
post
Post #9





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


Cytat(piotrekkr @ 1.09.2007, 21:05:24 ) *
Ciasteczka nic nie dadza.
Sproboj :
  1. <?php
  2. imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
  3. imagettftext($im, 20, 0, 10, 20, $white, $font, $text);
  4. ?>

aha i dodaj to na poczatku:
  1. <?php
  2. putenv('GDFONTPATH=' . realpath('.'));
  3. ?>


to tak jest (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) zmieniłem wymiary i niestety nic się nie zmieniło. kod wygląda tak:

  1. <?php
  2. putenv('GDFONTPATH=' . realpath('.'));
  3.  
  4. // Set the content-type
  5. header("Content-type: image/jpeg");
  6.  
  7. // Create the image
  8. $im = @imagecreatetruecolor(400, 80);
  9.  
  10. // Create some colors
  11. $white = imagecolorallocate($im, 255, 255, 255);
  12. $grey = imagecolorallocate($im, 128, 128, 128);
  13. $black = imagecolorallocate($im, 0, 0, 0);
  14.  
  15. // The text to draw
  16. $text = 'Testing...';
  17. // Replace path by your own font path
  18. $font = 'arialbd.ttf';
  19.  
  20. // Add some shadow to the text
  21. imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
  22.  
  23. // Add the text
  24. imagettftext($im, 20, 0, 10, 20, $white, $font, $text);
  25.  
  26. // Using imagepng() results in clearer text compared with imagejpeg()
  27. imagejpeg($im);
  28. imagedestroy($im);
  29. ?>


Ten post edytował bemol 1.09.2007, 21:09:46
Go to the top of the page
+Quote Post
piotrekkr
post
Post #10





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


plik z czcionka arialbd.ttf napewno jest na ftp w tym folderze?? Czasem przykladu nie brales stad http://pl2.php.net/manual/pl/function.imagettftext.php(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
bemol
post
Post #11





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


Przykład brałem stąd: http://www.phpmanual.yej.pl/function.imagettftext.html

Problem rozwiązany!
funckcję imagettftext zamieniłem na imagestring!

Kod teraz wygląda następująco:
  1. <?php
  2. // Set the content-type
  3. header("Content-type: image/jpeg");
  4.  
  5. // Create the image
  6. $im = @imagecreatetruecolor(400, 80);
  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.  
  13. // The text to draw
  14. $text = 'Testing...';
  15. // Replace path by your own font path
  16.  
  17. // Add some shadow to the text
  18. imagestring($im, 5, 21, 11, $text, $grey);
  19.  
  20. // Add the text
  21. imagestring($im, 5, 20, 10, $text, $white);
  22.  
  23. // Using imagepng() results in clearer text compared with imagejpeg()
  24. imagejpeg($im);
  25. imagedestroy($im);
  26. ?>


Wynik działania: http://ciekawe.2lokrosno.strefa.pl/obrazek.php

piotrekkr dziękuję za pomoc i cierpliwość (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dodam Cię do sygnatury (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
piotrekkr
post
Post #12





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


Spoko tylko troche brzydka ta czcionka standardowa ja bym powalczyl zeby byla ta ttf ale jak ci wystarczy zwykla to spoko (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dobra konczy mi sie piwo ide spac (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Narazie
Go to the top of the page
+Quote Post
bemol
post
Post #13





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


Witam ponownie, mam kolejny problem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
A mianowicie w pliku obraz.php nie można umieszczać funkcji include oraz łączyć się z bazą danych, a wszystkie kody mam właśnie zapisane na DB MYSQL. Jak zrobić, żeby zmienna $text (która wyświetla tekst na obrazku) wyświetlała losowy kod z bazy ?
Poniżej dwa kody:

obraz.php
  1. <?php
  2.  header("Content-type: image/jpeg");
  3.  $obraz = ImageCreate(250, 40);
  4.  $kolor['1'] = ImageColorAllocate($obraz, 0, 0, 0);
  5.  $kolor['2'] = ImageColorAllocate($obraz, 169, 169, 169);
  6.  $kolor['3'] = ImageColorAllocate($obraz, 110, 110, 110);
  7.  $kolor['4'] = ImageColorAllocate($obraz, 248, 225, 0); 
  8.  $text = $row['1'];
  9.  $font = imagefontheight('5');
  10.  ImageFilledRectangle($obraz, 0, 0, 300, 50, $kolor['1']); 
  11.  ImageFilledArc($obraz, 25, 25, 40, 40, 180, 360, $kolor['3'], 1);
  12.  for($i = 0; $i < 320; $i++) 
  13. {
  14. imagearc($obraz, rand(0, 250), rand(0, 40), rand(6, 12), rand(6, 12), 0, 360, $kolor['2']);
  15. }
  16. for($i = 0; $i < 165; $i++) 
  17. {
  18. imagefilledellipse ( $obraz, rand(0, 250), rand(0, 40), rand(5, 10), rand(5, 10), $kolor['2'] );
  19. }
  20.  ImageString ($obraz, $font, 85, 12, $text, $kolor['4']);
  21.  
  22.  Imagejpeg($obraz);
  23.  ImageDestroy($obraz);
  24.  ?>


oraz ważna część pliku add_ciekawostka.php
  1. <?php
  2. include('connection.php');
  3. $losowy = rand(76, 10000);
  4.  
  5. $con_sql = mysql_connect(SERWER, ADMIN, PASS)
  6. or die('Brak połączenia z serwerem MySQL.');
  7. $con_db = mysql_select_db(DATEBASE) 
  8. or die('Błąd wyboru bazy danych.');
  9. $query = "SELECT id, code FROM kody WHERE id=$losowy";
  10. $result = mysql_query($que) or die ('Blad: '.mysql_error().'dla zapytania:'.$que);
  11. $row = mysql_fetch_row($result);
  12. //echo $row['1'];
  13.  
  14. echo "<table border=0 width=252 height=42>";
  15. echo "<tr>";
  16. echo "<td style=\"background: #FFFF00; color: #FF0000; font-size: 18px;\" align=left><img src=\"obraz.php\" alt=\"przepisz kod\" /></td>";
  17. echo "</tr>";
  18. echo "</table><br />";
  19. echo '<TABLE>
  20. <TR>
  21. <TD>Przepisz kod z obrazka:<br /></TD>
  22. <TD align=left><INPUT id="autor" type="text" name="kod" maxlenght="5"></TD>
  23. </TR>
  24. </TABLE>';
  25. ?>


wynik: http://ogmo.xt.pl/ciekawostki/
Zakładka dodaj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował bemol 2.09.2007, 12:00:36
Go to the top of the page
+Quote Post
piotrekkr
post
Post #14





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


Cytat
A mianowicie w pliku obraz.php nie można umieszczać funkcji include oraz łączyć się z bazą danych, a wszystkie kody mam właśnie zapisane na DB MYSQL

Mozna includowac i uzywac baz danych bez zadnych problemow w kazdym pliku php. Wazne jest tylko (jesli generujesz obrazek) zeby nie wypisac nic za pomoca funkcji echo czy print bo wtedy skrypt przestaje generowac obraz a generuje text.

Aha co do losowego rekordu z bazy (ciekawostki) mozesz uzyc takiego zapytania:
  1. SELECT * FROM ciekawostki ORDER BY RAND() LIMIT 1 // lub LIMIT jakis inny wtedy pobierze ci wiecej niz 1 losowy rekord


Ten post edytował piotrekkr 2.09.2007, 12:33:33
Go to the top of the page
+Quote Post
bemol
post
Post #15





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


gdy na początku pliku obrazek.php umieszczę linijkę:
  1. <?php
  2. include ('connection.php');
  3. ?>

to plik przestaje działać :/
Tzn obrazek się nie wyświetla, tylko napis źródła obrazku: czyli http://online-games-mu-online/ciekawostki/obrazek.php :/
Go to the top of the page
+Quote Post
piotrekkr
post
Post #16





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


W takim wypadku w connection.php musi byc jakis znak poza skryptem lub jakies echo/print daj kod connection.php to moze ci powiem co nie tak.
Go to the top of the page
+Quote Post
bemol
post
Post #17





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


  1. <?php
  2. DEFINE("SERWER", "*******");
  3. DEFINE("ADMIN", "*******");
  4. DEFINE("PASS", "*******");
  5. DEFINE("DATEBASE", "*******");
  6. ?>


Więc to raczej nie to ;> ... :/
Go to the top of the page
+Quote Post
piotrekkr
post
Post #18





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


a wez po tym
  1. <?php
  2. $kolor['4'] = ImageColorAllocate($obraz, 248, 225, 0); 
  3.  $text = $row['1'];
  4. ?>

wstaw:
  1. <?php
  2. var_dump($text); die();
  3. ?>

i napisz co wypisalo bo tak mi sie wydaje ze to bedzie NULL :/
Go to the top of the page
+Quote Post
bemol
post
Post #19





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


jak wstawie:
  1. <?php
  2. var_dump($text); die();
  3. ?>

to znów pokazuje sie zamiast obrazka, ścieżka do niego :/
nic nie wypisuje :/
Go to the top of the page
+Quote Post
piotrekkr
post
Post #20





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


Wez zakomentuj header(); i sprawdz co wyswietla var_dump();
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 28.09.2025 - 10:23