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 1.09.2007, 20:29:52
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ą".


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
piotrekkr
post 1.09.2007, 20:32:57
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 1.09.2007, 20:35:02
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 smile.gif choć arial też jest winksmiley.jpg


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
piotrekkr
post 1.09.2007, 20:42:41
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 1.09.2007, 20:45:01
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?


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
piotrekkr
post 1.09.2007, 20:47:00
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 1.09.2007, 20:52:30
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 smile.gif

Ten post edytował bemol 1.09.2007, 20:56:43


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
piotrekkr
post 1.09.2007, 21:05:24
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 1.09.2007, 21:09:20
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 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


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
piotrekkr
post 1.09.2007, 21:13:19
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.phpquestionmark.gif
Go to the top of the page
+Quote Post
bemol
post 1.09.2007, 21:21:03
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ść smile.gif Dodam Cię do sygnatury smile.gif


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
piotrekkr
post 1.09.2007, 21:24:53
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 smile.gif Dobra konczy mi sie piwo ide spac biggrin.gif Narazie
Go to the top of the page
+Quote Post
bemol
post 2.09.2007, 11:58:54
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 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 smile.gif

Ten post edytował bemol 2.09.2007, 12:00:36


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
piotrekkr
post 2.09.2007, 12:23:03
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 2.09.2007, 12:33:20
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 :/


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
piotrekkr
post 2.09.2007, 12:35:20
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 2.09.2007, 14:39:41
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 ;> ... :/


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
piotrekkr
post 2.09.2007, 14:58:26
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 2.09.2007, 15:18:34
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 :/


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
piotrekkr
post 2.09.2007, 17:46:59
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 19:18