Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]/[GD] Problem z wyświetlaniem
Forum PHP.pl > Forum > PHP
wojtek19115
Witam mam problem z moim skryptem niechce się wcale wyświetlać obrazek a na nim powinna biblioteka GD generować napis.
Oto ten skrypt :
Kod
<?php
header("Content-type: image/jpeg");

$im = imagecreatefromjpeg('testowy.jpg');

// Kolor liter
$pierwszy = imagecolorallocate($im, 255, 255, 255);
//kolor scianek liter
$drugi = imagecolorallocate($im, 128, 128, 128);

$text = "To żyje!! ";




// Efekt glebi tekstu +1 do wartosci wspulrzednych tekstu
imagestring($im, 15, 36, 26, $text, $drugi);

// Wspulrzedne tekstu
imagestring($im, 15, 35, 25, $text, $pierwszy);


imagejpeg($im);
imagedestroy($im);
?>

I mam pytanie gdzie tu jest błąd questionmark.gif Bo zaczynam przygodę z PHP niedawno pierwszy kalkulator mam za sobą biggrin.gif Jagby ktoś mógł to może poda poprawny kod PHP
em1X
Problemów może być wiele.

Po pierwsze primo prawdopodobnie nie masz obrazka, na bazie którego chcesz utworzyć w GD nowy więc trzeba to sprawdzić.
Po drugie primo nagłówki typu dokumentu wysyłać należy na końcu nie na początku dzięki czemu błędy o ile się pojawią w ogóle się wyświetlą.
Po trzecie primo ultimo, współrzędne należy pisać przez ó zamknięte.

  1. $image=dirname(__FILE__).'/testowy.jpg';
  2.  
  3. if (file_exists($image)) {
  4. $im = imagecreatefromjpeg($image);
  5. }
  6. else {
  7. die('Nie ma takiego obrazka '.basename($image));
  8. }
  9.  
  10. // Kolor liter
  11. $pierwszy = imagecolorallocate($im, 255, 255, 255);
  12. //kolor scianek liter
  13. $drugi = imagecolorallocate($im, 128, 128, 128);
  14.  
  15. $text = "To żyje!! ";
  16.  
  17. // Efekt glebi tekstu +1 do wartosci wspolrzednych tekstu
  18. imagestring($im, 15, 36, 26, $text, $drugi);
  19.  
  20. // Wspolrzedne tekstu
  21. imagestring($im, 15, 35, 25, $text, $pierwszy);
  22.  
  23. header("Content-type: image/jpeg");
  24. imagejpeg($im);
  25. imagedestroy($im);
wojtek19115
Dałem ten kodzik a tu takie błędy :
Kod
Warning: Division by zero in /home/xxxxx/domains/xxxxx.malbo.pl/public_html/skrypty/testing/test.php on line 2
Nie ma takiego obrazka test.jpg

A ja mam w tym folderze obrazek o nazwie test.jpg O_O
em1X
Chyba czas doszlifować angielski?
Division by zero. Nigdy cholero nie dziel przez zero.

Pokaż co masz u SIEBIE w drugiej linijce kodu pliku test.php
wojtek19115
Oto co mam :
Kod
1.<?php
2.$image=dirname(skrypty/testing).'/test.jpg';
em1X
a po co cokolwiek zmieniałeś?

miało być:
  1. $image=dirname(__FILE__).'/test.jpg';


następnym razem niech takie tematy będą zakładane w dziale przedszkole smile.gif nie znasz kompletnie podstaw języka.
wojtek19115
Nom fajna odpowiedź winksmiley.jpg patrz co teraz sie wyświetla:
Kod
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file in /home/wojtex/domains/best-page.malbo.pl/public_html/skrypty/testing/test.php on line 5

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/home/wojtex/domains/best-page.malbo.pl/public_html/skrypty/testing/test.jpg' is not a valid JPEG file in /home/wojtex/domains/best-page.malbo.pl/public_html/skrypty/testing/test.php on line 5

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /home/wojtex/domains/best-page.malbo.pl/public_html/skrypty/testing/test.php on line 12

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /home/wojtex/domains/best-page.malbo.pl/public_html/skrypty/testing/test.php on line 14

Warning: imagestring(): supplied argument is not a valid Image resource in /home/wojtex/domains/best-page.malbo.pl/public_html/skrypty/testing/test.php on line 19

Warning: imagestring(): supplied argument is not a valid Image resource in /home/wojtex/domains/best-page.malbo.pl/public_html/skrypty/testing/test.php on line 22

Warning: Cannot modify header information - headers already sent by (output started at /home/wojtex/domains/best-page.malbo.pl/public_html/skrypty/testing/test.php:1) in /home/wojtex/domains/best-page.malbo.pl/public_html/skrypty/testing/test.php on line 24
A wstawiłem taki jaki ty dałeś winksmiley.jpg
em1X
odpowiedź trafna jak najbardziej, Twoja nieznajomość tematu jest problemem
Nie znam Twojego układu folderów a kod

  1. include dirname(__FILE__).'/jakisPlik.php';


powoduje załączenie pliku jakisPlik.php, który znajduje się W TYM SAMYM folderze, co plik, który właśnie jest wykonywany - czyli relatywnie do niego.

Skoro plik znajduje się w jakimś folderze głębiej to dać należy:
  1. include dirname(__FILE__).'/jakis/folder/plik.php';
  2.  
  3. // natomiast jezeli w folderze wczesniej to
  4. include dirname(__FILE__).'/../wczesniejszy/folder/plik.php';
wojtek19115
Dzięki wkońcu nie ma żadnego błędu poza jednym pisze tylko że nie ma takiego obrazka sad.gif masz linka http://www.best-page.malbo.pl/skrypty/testing/test.php
em1X
obrazek testowy.jpg powinien się znajdować w tym samym folderze co wykonywany plik php, wtedy zadziała.
wojtek19115
Wnerwiłem się poczytałem i zmodyfikowałem biggrin.gif Oto działający:
Kod
<?php
$nazwa="test.png";
if(!isset($_POST['generuj']))
{
echo '<form method="post" action="#generuj">
<input type="text" name="napis" />
<input type="submit" name="generuj" value="Wygeneruj" />
</form>';
}
elseif(isset($_POST['generuj']))
{
//header('Content-type: image/png');

$img = ImageCreate(300,100); #Tworzy obrazek

$kolor_bialy = ImageColorAllocate($img, 255, 255, 255);
$kolor_czarny = ImageColorAllocate($img, 0, 0, 0);

ImageFill($img, 0, 0, $kolor_bialy);
ImageString($img, 30, 15, 30, $_POST['napis'], $kolor_czarny);
imagepng($img, $nazwa);
//imagepng($img);
ImageDestroy($img);
echo "<img src=\"$nazwa\" alt=\"Wygenerowany obrazek\" /><br>";
echo "LINK do Obrazka: <a href=\"$nazwa\">$_SERVER[HTTP_HOST]/$nazwa</a>";
}
      

?>

Ale mam jeszcze ostatnie pytanie jak zrobić aby się generowało na 2 obrazkach naraz z wyborem czcionki questionmark.gif
em1X
baw się, powodzenia
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.