Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Skalowanie obrazów....
Forum PHP.pl > Forum > Przedszkole
kkuubbaa88
witam

napisalem prostą funkcję w php do skalowania obrazów... niestety nie wiedziec czemu nie dziala to poprawnie pomimo tego, ze caly kod wyglada na poprawny... efekt wykokania funkcji jest wyswietlenie milionow krzakow na stronie i brak zapisanego nowego, przeskalowanego obrazka.

funkcja:
  1. function przeskaluj_zdjecie($plik, $nowa_sz, $nowa_w, $plik_2){
  2. $info = @getimagesize($plik);
  3.  
  4. switch ($info['mime'])
  5. {
  6. case "image/gif":
  7. $plik = imagecreatefromgif($plik);
  8. break;
  9. case "image/jpeg":
  10. $plik = imagecreatefromjpeg($plik);
  11. break;
  12. case "image/png":
  13. $plik = imagecreatefrompng($plik);
  14. break;
  15. }
  16.  
  17. $plik_sz = imageSX($plik);
  18. $plik_w = imageSY($plik);
  19.  
  20. if ($plik_sz > $plik_w)
  21. {
  22. if ($plik_sz > $nowa_sz){
  23. $plik_2_sz = $nowa_sz;
  24. $plik_2_w = $nowa_sz*($plik_sz/$plik_w);
  25. }else{
  26. $plik_2_sz = $plik_sz;
  27. $plik_2_w = $plik_w;
  28. }
  29. }
  30.  
  31. if ($plik_sz < $plik_w)
  32. {
  33. if ($plik_sz > $nowa_sz){
  34. $plik_2_sz = $nowa_sz;
  35. $plik_2_w = $nowa_sz*($plik_sz/$plik_w);
  36. }else{
  37. $plik_2_sz = $plik_sz;
  38. $plik_2_w = $plik_w;
  39. }
  40.  
  41. if ($plik_w > $nowa_w){
  42. $plik_2_sz = $nowa_w*($plik_sz/$plik_w);
  43. $plik_2_w = $nowa_w;
  44. }
  45. }
  46.  
  47. if ($plik_sz == $plik_w)
  48. {
  49. $plik_2_sz=$nowa_w;
  50. $plik_2_w=$nowa_w;
  51. }
  52.  
  53. $nowy_plik = ImageCreateTrueColor($plik_2_sz, $plik_2_w);
  54.  
  55. @imagecopyresampled($nowy_plik, $plik, 0, 0, 0, 0, $plik_2_sz, $plik_2_w, $plik_sz, $plik_w);
  56.  
  57. @imagejpeg($nowy_plik, $plik2, '90');
  58. @imagedestroy($plik);
  59. @imagedestroy($nowy_plik);
  60. return TRUE;
  61. }


a wywoluje:
  1. przeskaluj_zdjecie("fotka.jpg", "600", "480", "fotka_2.jpg");


bardzo prosze o wasza pomoc smile.gif
Agape
Ja bym usunął na chwilę @ i sprawdził co tak naprawdę wywala błąd. To powinno dać Ci naprowadzenie na rozwiązanie. Jak nie to napisz na forum co dokładnie wywala.
kkuubbaa88
zamiast
  1. @imagejpeg($nowy_plik, $plik2, '90');


powinno byc

  1. @imagejpeg($nowy_plik, $plik_2, '90');


i juz wszystko dziala 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.