Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Skalowanie obrazów....
kkuubbaa88
post 26.03.2010, 19:28:10
Post #1





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

Ostrzeżenie: (0%)
-----


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

Ten post edytował kkuubbaa88 26.03.2010, 19:28:42
Go to the top of the page
+Quote Post
Agape
post 26.03.2010, 19:40:49
Post #2





Grupa: Zarejestrowani
Postów: 384
Pomógł: 13
Dołączył: 16.06.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
kkuubbaa88
post 26.03.2010, 19:56:01
Post #3





Grupa: Zarejestrowani
Postów: 510
Pomógł: 1
Dołączył: 27.08.2007

Ostrzeżenie: (0%)
-----


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


powinno byc

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


i juz wszystko dziala smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 00:21