Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Tworzenie miniatur dla dużych obrazów
Forum PHP.pl > Forum > Przedszkole
radziowie
Mam kod:
  1. if (is_uploaded_file($_FILES['zdjecie']['tmp_name']))
  2. {
  3. move_uploaded_file($zdjecie_tmp, "../upload/galeria/$zdjecie_nazwa");
  4. echo "Plik: <strong>$zdjecie_nazwa</strong> o rozmiarze
  5. <strong>$zdjecie_rozmiar kB</strong> został przesłany na serwer!";
  6. $zapytanie = "INSERT INTO zdjecia VALUES (NULL, '".$zdjecie_nazwa."', '".$opis."', '".$id_kat."')";
  7. $result = mysql_query($zapytanie);
  8.  
  9. //nie tworzy miniaturek dla wiekszych rozdzielczości
  10. $sp = explode(".", $zdjecie_nazwa);
  11. if($sp[1] == "jpeg")
  12. {
  13. $img = imagecreatefromjpeg("../upload/galeria/".$zdjecie_nazwa."");
  14. }
  15. elseif($sp[1] == "png")
  16. {
  17. $img = imagecreatefrompng("../upload/galeria/".$zdjecie_nazwa."");
  18. }
  19. elseif($sp[1] == "jpg")
  20. {
  21. $img = imagecreatefromjpeg("../upload/galeria/".$zdjecie_nazwa."");
  22. }
  23. elseif($sp[1] == "gif")
  24. {
  25. $img = imagecreatefromgif("../upload/galeria/".$zdjecie_nazwa."");
  26. }
  27. else
  28. {
  29. echo 'Zły format obrazka';
  30. }
  31. $width = imagesx($img);
  32. $height = imagesy($img);
  33.  
  34. $width_mini = 120;
  35. $height_mini = 120;
  36. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  37.  
  38. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini ,
  39.  
  40. $height_mini, $width , $height);
  41.  
  42.  
  43.  
  44.  
  45. imagejpeg($img_mini, "../upload/galeria/mini/".$zdjecie_nazwa."", 80);
  46. imagedestroy($img);
  47. imagedestroy($img_mini);
  48.  


I sie zastanawiam, bo skrypt tworzy miniatury np. dla plików o rozdzielczości 800x600 a gdy wstawie jakiś obrazek o rozdzielczości ponad 2500x cos tam to wywala mi błąd:
Kod
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 10368 bytes) in C:\Program Files (x86)\WebServ\httpd-users\praca\admin\zdjecia.php on line 100

Moje pytanie brzmi w czym tkwi problem? Czy to wina serwera czy moja?
vonski
Spróbuj

  1. ini_set("memory_limit", "15M");


Drugi argument (ilość megabajtów) może być większa / mniejsza w zależności od twoich potrzeb.
radziowie
Nic z tego. Te same błędy.
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.