Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z biblioteką GD
Forum PHP.pl > Forum > PHP
RaiZeN
Siemka

Napisałem coś w podobie na generator sygnatur (to tylko szkic, na dodatek bardzo prymitywny). Najpierw wpisuje się tekst w pole, potem ten tekst wyświetla się na obrazku, jednak gdy chcę go zapisać na dysku widać tylko obrazek, bez tekstu. Dodałem specjalnie drugi tekst (stały) i on zapisuje się dobrze. Cały kod wygląda tak:
syg.php
  1. <form action="obrazek.php" method="post">
  2. Tekst1: <input type="text" name="tekst1" /><br />
  3. Tekst2: <input type="text" name="tekst2" /><br />
  4. <input type="submit" name="submit" value="Generuj!" />
  5. </form>


obrazek.php
  1. <?php
  2. $rysunek = ImageCreateFromPNG("obrazek.png");
  3.  
  4. $kolor1 = ImageColorAllocate($rysunek, 255, 255, 255);
  5. $kolor2 = ImageColorAllocate($rysunek, 0, 255, 255);
  6.  
  7. ImageString($rysunek, 15, 50, 10, $_POST['tekst1'], $kolor1);
  8. ImageString($rysunek, 5, 180, 20, "tekst2", $kolor2);
  9.  
  10. header("Content-type: image/jpeg");
  11. ImageJpeg($rysunek);
  12. ?>
Kshyhoo
  1. header("Content-type: image/jpeg");
  2. imagejpg($rysunek, NULL);
  3. imagejpg($rysunek, "katalog/$name.jpg");
  4. chmod("katalog/$name.jpg", 0666); // opcjonalnie
  5.  
  6. imagedestroy($rysunek);
RaiZeN
  1. header("Content-type: image/jpeg");
  2. ImageJpeg($rysunek, NULL);
  3. imageJpeg($rysunek, "syg/$name.jpg");
  4. chmod("syg/$name.jpg", 0666);
  5. imagedestroy($rysunek);


Niestety nie działa :/
Kshyhoo
Najlepiej powiedzieć, nie działa. Jakieś błędy? Nazwę nadałeś?
RaiZeN
Jaką nazwę? Błędów nie ma, jest tak jak wcześniej.
trueblue
Pokaż cały kod, kiedy zapisujesz obrazek na dysku.
RaiZeN
Cytat(trueblue @ 2.04.2014, 10:51:05 ) *
Pokaż cały kod, kiedy zapisujesz obrazek na dysku.


  1. <?php
  2. $rysunek = ImageCreateFromPNG("obrazek.png");
  3.  
  4. $kolor1 = ImageColorAllocate($rysunek, 255, 255, 255);
  5. $kolor2 = ImageColorAllocate($rysunek, 0, 255, 255);
  6.  
  7. ImageString($rysunek, 15, 50, 10, $_POST['tekst1'], $kolor1);
  8. ImageString($rysunek, 5, 180, 20, "tekst2", $kolor2);
  9.  
  10. header("Content-type: image/jpeg");
  11. ImageJpeg($rysunek, NULL);
  12. imageJpeg($rysunek, "php/syg/$name.jpg");
  13. chmod("php/syg/$name.jpg", 0666);
  14. imagedestroy($rysunek);
  15. ?>
trueblue
  1. $rysunek = ImageCreateFromPNG("obrazek.png");
  2.  
  3. $kolor1 = ImageColorAllocate($rysunek, 255, 255, 255);
  4. $kolor2 = ImageColorAllocate($rysunek, 0, 255, 255);
  5.  
  6. ImageString($rysunek, 15, 50, 10, $_POST['tekst1'], $kolor1);
  7. ImageString($rysunek, 5, 180, 20, "tekst2", $kolor2);
  8.  
  9. ImageJpeg($rysunek, 'aaa.jpg'); //tu podaj prawidłową ścieżkę
  10. imagedestroy($rysunek);
Sephirus
Opcje są dwie:

1. albo nie dochodzą Ci jakimś cudem dane w POST (mało pradowpodobne)
2. albo źle używasz funkcji imagestring

wg dokumentacji:

bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color );

Spróbuj tak:

  1. ImageString($rysunek, 1, 0, 10, $_POST['tekst1'], $kolor1);
  2. ImageString($rysunek, 1, 0, 20, "tekst2", $kolor2);


I zobacz czy Ci coś wyświetli - jeśli tak dobierz odpowiednio drugi i trzeci argument (2 -> font nie wiem czy jest font o nr 15, 3 -> X - podales 180 - może to poza obrazkiem)
RaiZeN
Cytat(trueblue @ 2.04.2014, 11:00:58 ) *
  1. $rysunek = ImageCreateFromPNG("obrazek.png");
  2.  
  3. $kolor1 = ImageColorAllocate($rysunek, 255, 255, 255);
  4. $kolor2 = ImageColorAllocate($rysunek, 0, 255, 255);
  5.  
  6. ImageString($rysunek, 15, 50, 10, $_POST['tekst1'], $kolor1);
  7. ImageString($rysunek, 5, 180, 20, "tekst2", $kolor2);
  8.  
  9. ImageJpeg($rysunek, 'aaa.jpg'); //tu podaj prawidłową ścieżkę
  10. imagedestroy($rysunek);


Działa, dzięki. smile.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.