Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Tworzenie miniaturki w locie przy uploadzie zdjęcia, Pomoc w modyfikacji skryptu
grattz
post 22.01.2007, 21:15:50
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 29.10.2006
Skąd: BB

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


Pierwszy raz modyfikuje gotowy skrypt i nie daje sobie rady.
Chce aby przy uploadowaniu zdjęcia na serwer tworzyła sie w locie miniaturka tegoż zdjęcia.
Dane wyjściowe:
Katalog na serwerze .../portal2006/uploads/
Nazwy plików zapisywanych na serwerze .$id.$_FILES['Plik']['name']

Jak zmodyfikować ten kod zeby sprzęrzyć te dane ?
  1. <?php
  2. // definicja funkcji robiącej miniaturę zdjęcia
  3. function resizeImage($source, $max_x, $max_y, $save_image, $jpeg_quality)
  4. {
  5.  /*
  6. * source - obrazek jpeg
  7. * max_x - maksymalna szerokosc pomniejszonego obrazka
  8. * max_y - maksymalna dlugosc pomniejszonego obrazka
  9. * save_image - nazwa pliku do ktorego zostanie zapisany nowy obrazek
  10. * jpeg_quality - jakosc powstalego obrazu jpeg - jezeli bedzie inny to argument jest nie wazny (domyslnie 100)
  11. */
  12.  
  13. if(exif_imagetype($source) == IMAGETYPE_JPEG)
  14. {
  15.  $img_src = imagecreatefromjpeg($source);
  16. }
  17. elseif(exif_imagetype($source) == IMAGETYPE_GIF)
  18. {
  19.  $img_src = imagecreatefromgif($source);
  20. }
  21. elseif(exif_imagetype($source) == IMAGETYPE_PNG)
  22. {
  23.  $img_src = imagecreatefrompng($source);
  24. }
  25. else
  26. {
  27.  die('Wrong filetype! Accepted images: JPG/JPEG, GIF, PNG');
  28. }
  29.  
  30.  $image_x = imagesx($img_src);
  31.  $image_y = imagesy($img_src);
  32.  if($image_x > $image_y) // Landscape
  33.  {
  34. $ratio_x = ($image_x > $max_x) ? $max_x/$image_x : 1;
  35. $ratio_y = $ratio_x;
  36. $move = 'y';
  37.  }
  38.  else // Portrait
  39.  {
  40. $ratio_y = ($image_y > $max_y) ? $max_y/$image_y : 1;
  41. $ratio_x = $ratio_y;
  42. $move = 'x';
  43.  }
  44. $new_x = $image_x*$ratio_x;
  45. $new_y = $image_y*$ratio_y;
  46.  
  47. $move_x = ($move == "x") ? ($max_x-$new_x)/: 0;
  48. $move_y = ($move == "y") ? ($max_y-$new_y)/: 0;
  49. $new_img = imagecreatetruecolor($max_x, $max_y); //tworzy obrazek o identyfikatorze $new_img i rozmiarach $max_x i $max_y
  50. $background = imagecolorallocate($new_img, 255, 255, 255); //przypisuje kolor czarny (255, 255, 255) do obrazka $new_img
  51. imagefill($new_img, 0, 0, $background); //wypełnia obrazek $new_image przypisanym kolorem $background
  52. imagecopyresampled($new_img, $img_src, $move_x, $move_y, 0, 0, $new_x, $new_y, $image_x, $image_y);
  53.  
  54. if(exif_imagetype($save_image) == IMAGETYPE_JPEG) //tworzy zmniejszony obrazek $save_image w zależności od typu pliku
  55. {
  56.  imagejpeg($new_img, $save_image, $jpeg_quality);
  57. }
  58. elseif(exif_imagetype($save_image) == IMAGETYPE_GIF)
  59. {
  60.  imagegif($new_img, $save_image);
  61. }
  62. elseif(exif_imagetype($save_image) == IMAGETYPE_PNG)
  63. {
  64.  imagepng($new_img, $save_image);
  65. }
  66.  
  67.  echo '<img src="'.$save_image.'" border="1">'; //wyświetla zmniejszony obrazek $save_image
  68. }
  69. // koniec definicji funkcji robiącej miniaturę
  70. ?>


Ten post edytował grattz 23.01.2007, 20:58:26


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 04:21