Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem ze zmienianiem rozmiaru obrazka
Forum PHP.pl > Forum > PHP
renault12
Tak jak w temacie mam mały problem dotyczący zmieniania rozmiarów obrazka. Przy kodzie występuję błąd w takiej postaci:


  1. Warning: imagecopyresized(): supplied argument is not a valid Image resource in /home/tomstoys/public_html/resizer.php on line 34
  2. questionmark.gifquestionmark.gif?JFIF?questionmark.gif?questionmark.gifquestionmark.gif?>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), d
  3. efault quality questionmark.gif?C?   


Plik który wrzucam to jpg

A to jest kod:
  1. <?
  2. if (isset($_POST['wyslij'])) {
  3. $szer = $_POST['szer'];
  4. $wys = $_POST['wys'];
  5. $file = $_FILES['obraz'];
  6. $filesize = $file['size'];
  7. $filename = "obrazy/" . $file['name'];
  8. move_uploaded_file($_FILES["obraz"]["tmp_name"],
  9. "obrazy/" . $_FILES["obraz"]["name"]);
  10. $typ = "obrazy/" . $_FILES['obraz']['type'];
  11. if ($typ == "image/jpeg") {
  12. $source_id = imagecreatefromjpeg("obrazy/" . $_FILES["obraz"]["name"]);
  13. }
  14. if ($typ == "image/png") {
  15. $source_id = imagecreatefrompng("obrazy/" . $_FILES["obraz"]["name"]);
  16. }
  17. if ($typ == "image/gif") {
  18. $source_id = imagecreatefromgif("obrazy/" . $_FILES["obraz"]["name"]);
  19. }
  20. if ($typ == "image/bmp") {
  21. $source_id = imagecreatefromwbmp("obrazy/" . $_FILES["obraz"]["name"]);
  22. }
  23. list($szerokosc, $wysokosc) = getimagesize($filename);
  24. $thumb = imagecreatetruecolor($szer, $wys);
  25. $target_pic = imagecopyresized($thumb, $source_id, 0, 0, 0, 0, $szer, $wys, $szerokosc, $wysokosc);
  26. imagejpeg($thumb);
  27. }
  28. ?>


Ktoś bystry mógłby coś poradzić smile.gif?
tehaha
przecież masz treść błędu - nie dostarczyłeś zasobu obrazu do funkcji, sprawdź czy ten plik jest zapisywany tam gdzie ma być, albo czy w ogóle został przesłany

poza tym typ obrazka sprawdzaj funkcją getimagesize()
renault12
nawet z tak dokładnymi wartościami
  1. <? $target_pic = imagecopyresized(imagecreatetruecolor(150,150), "obrazy/tlo.jpg", 0, 0, 0, 0, 150, 150, 980, 957); ?>
jest ten sam błąd
tehaha
bo zasób obrazu to nie jest ścieżka do obrazu, zasób obrazu tworzy się np. funkcją imagecreatefromjpeg() i dopiero tak utworzony zasób obrazu podajesz jako parametr do imagecopyresized() A NIE ŚCIEŻKĘ DO PLIKU

w pierwszym poście miałeś dobrze tylko upewnij się, czy ten zasób jest tworzony daj na górze print_r($_FILES), bo może wcale obrazka nie przesyłasz, albo może zmienna $source_id jest pusta
renault12
hmm sam zobacz przy tym kodzie:

  1. if (isset($_POST['wyslij'])) {
  2. $szer = $_POST['szer'] * 0.5;
  3. $wys = $_POST['wys'] * 0.5;
  4. $file = $_FILES['obraz'];
  5. $filesize = $file['size'];
  6. $filename = "obrazy/" . $file['name'];
  7. move_uploaded_file($_FILES["obraz"]["tmp_name"],
  8. "obrazy/" . $_FILES["obraz"]["name"]);
  9. $typ = $_FILES['obraz']['type'];
  10. if ($typ == "image/jpeg") {
  11. $source_id = imagecreatefromjpeg("obrazy/" . $_FILES["obraz"]["name"]);
  12. }
  13. if ($typ == "image/png") {
  14. $source_id = imagecreatefrompng("obrazy/" . $_FILES["obraz"]["name"]);
  15. }
  16. if ($typ == "image/gif") {
  17. $source_id = imagecreatefromgif("obrazy/" . $_FILES["obraz"]["name"]);
  18. }
  19. if ($typ == "image/bmp") {
  20. $source_id = imagecreatefromwbmp("obrazy/" . $_FILES["obraz"]["name"]);
  21. }
  22. list($szerokosc, $wysokosc) = getimagesize($filename);
  23. $thumb = imagecreatetruecolor($szer, $wys);
  24. $target_pic = imagecopyresized($thumb, $source_id, 0, 0, 0, 0, $szer, $wys, $szerokosc, $wysokosc);
  25. imagejpeg($thumb);
  26. echo "<br/><br/>1." . print_r($thumb) . "<br/>";
  27. print_r($_FILES['name']);
  28. print_r($_FILES);
  29. }


jest to = http://tomstoys.zxy.me/resizer.php
Na końcu są wartości zwracane.

To co zwraca print_r($_files) to
Array ( [obraz] => Array ( [name] => ruda.png [type] => image/png [tmp_name] => /tmp/php6Ov0d7 [error] => 0 [size] => 6755 ) )
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.