Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przeskalowanie zdjęcia, [funkcja]
mihas
post 27.01.2006, 21:28:38
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 27.01.2006

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


Cześć.

Złożyłem funkcję, która ma zmienić rozmiar zdjęcia $src_file na określoną szerokość $dst_width albo wysokość $dst_height i zapisać jako plik $dst_file.

  1. <?php
  2. function resizeJPEG( $src_file, $dst_file, $dst_width=false, $dst_height=false )
  3. { 
  4. /**/echo "\nFAFARAFA";
  5. # one or both of dst_width or dst_height must be int
  6. if( !$dst_width && !$dst_height )
  7. { die( 'Must specify either a dst_width or dst_height!' ); }
  8.  
  9. list( $src_width, $src_height, $type, $attr ) = getimagesize( $src_file );
  10. switch ( $type )
  11. {
  12. case 1: 
  13. $src_img = @ImageCreateFromGIF($src_file); break; 
  14. case 2: 
  15. $src_img = @ImageCreateFromJPEG($src_file); break; 
  16. case 3: 
  17. $src_img = @ImageCreateFromPNG($src_file); break;
  18. default:
  19. return false;
  20. }
  21.  
  22. if( !$src_img ) return false;
  23.  
  24. $src_width = imagesx($src_img);
  25. $src_height = imagesy($src_img);
  26.  
  27. echo ":: ".$src_height."/".$src_width."/".$dst_height."/".$dst_width."\n";
  28.  
  29. if( $src_width <= $dst_width && $src_height <= $dst_height )
  30. {  # src img is smaller than wanted dimensions
  31. $success = imageJPEG( $src_img, $dst_file );
  32. }
  33. else
  34. {  # resize image
  35. if( $dst_width !== false && $dst_height === false )
  36. {  # only specified dst_width, calculate dst_height
  37. $proportion = round( ( $src_width / $dst_width ), 2 );
  38. $dst_height = (int) ( $src_height / $proportion );
  39. }
  40. elseif( $dst_width === false && $dst_height !== false )
  41. {  # only dst_height specified, calculate dst_width
  42. $proportion = round( ( $src_height / $dst_height ), 2 );
  43. $dst_width = (int) ( $src_width / $proportion );
  44. }
  45. echo "ratio: ".$proportion."\n";
  46. $new_img = imagecreatetruecolor( $dst_width, $dst_height );
  47. imagecopyresampled( $new_img, $src_img, 0, 0, 0, 0, $dst_width, $dst_height, $src_width, $src_height );
  48. $success = imageJPEG( $new_img, $dst_file );
  49. }
  50. # clean up
  51. imagedestroy( $new_img );
  52. imagedestroy( $src_img );
  53. return $success;
  54. }
  55. ?>

Mówiąc najkrócej: nie działa. W php nie jestem zbyt biegły, ale zastosowałem starą dobrą metodę wstawiania "znaczników" wewnątrz kodu, aby sprawdzić co szwankuje. W oknie przeglądarki pojawia się wyłącznie pierwszy ("FAFARAFA") znacznik. Reszty nie ma. Dziwi mnie to, bo wydaje mi się, że albo powinny zostać wypisane, albo funkcja powinna się wywalić.

Co z tym zrobic? Macie jakis pomysł? smile.gif
Go to the top of the page
+Quote Post
crash
post 27.01.2006, 21:56:31
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Dlaczego umieściłeś ten tematu w tym dziale?


--------------------
Go to the top of the page
+Quote Post
NetJaro
post 27.01.2006, 23:23:06
Post #3





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


Uzyj funkcji header, aby przekazac naglowki do przegladarki, ze zostanie wyswietlony obraz.
Go to the top of the page
+Quote Post
FiDO
post 28.01.2006, 13:44:17
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Przenosze na php P.


--------------------
Brak czasu :/
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: 20.06.2025 - 09:41