Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql]Miniaturki zdjęć
tomkoff
post 14.11.2006, 17:41:44
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 3.11.2006

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


Witam.
Napisałem sobie taki skrypcik, który uploaduje zdjęcie z lokalnego dysku do wskazanego dysku na serwer oraz dodaje nazwę pliku ze zdjęciem do bazy danych. Mam takie pytanie... czy jest możliwe w miare prosto dodać do tego jeszcze taką funkcję, która by "w locie" robiła miniaturkę tego zdjęcia o wskazanym rozmiarze (np. 100x100) i zapisywała ją również do tego samego katalogu co uploadowane zdjęcie, pod nazwą powiedzmy nazwa_zdjęcia_thumb.jpg i jeszcze dodawała tą nazwę także do bazy danych, powiedzmy do pola 'cover_thumb' ? Da się to zrobić, czy póki co to ponad siły początkującego? smile.gif

Z góry dzięki za odpowiedź!
pzdr

Ten post edytował tomkoff 14.11.2006, 17:42:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Neojawor
post 14.11.2006, 17:52:53
Post #2





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

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


oto co sam znalazłem, choć jeszcze nie sprawdzałem (znalazłem to już jakiś czas temu tutaj na forum):
  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. ?>


ps. przepraszam że to wyświetlam jako html, ale jak biorę php, to mi wstawia \ przed niektóre cudzysłowy i wszystko jest totalnie nieczytelne (tu uwaga do adminów - czemu to tak dziwnie działa?)

Ten post edytował Neojawor 14.11.2006, 18:15:53
Go to the top of the page
+Quote Post
kosheen2k
post 14.11.2006, 18:03:25
Post #3





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 9.03.2006
Skąd: z fotela ;p

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


Cytat(Neojawor @ 14.11.2006, 17:52:53 ) *
ps. przepraszam że to wyświetlam jako html, ale jak biorę php, to mi wstawia \ przed niektóre cudzysłowy i wszystko jest totalnie nieczytelne (tu uwaga do adminów - czemu to tak dziwnie działa?)


Kolego drogi wszystko jest czytelne winksmiley.jpg w podglądzie widać tylko \" a jak już wrzucisz posta jest wszystko ok. Sam sprawdź smile.gif Pozdrawiam


--------------------


Go to the top of the page
+Quote Post
Neojawor
post 14.11.2006, 18:17:53
Post #4





Grupa: Zarejestrowani
Postów: 106
Pomógł: 1
Dołączył: 2.12.2005
Skąd: Jaworzno

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


Dzięki kosheen2k, sporo czasu mnie tu nie było... snitch.gif
Go to the top of the page
+Quote Post
Zimon
post 16.11.2006, 22:22:04
Post #5





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 7.08.2006

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


jeśli można wiedzieć to jak przebudować ten skrypt aby miniaturkę tworzył bezpośrednio po uploadzie na serwer i zapisywał go w tym samym folderze co większy plik??

czy może wystarczy tylko zastosować takie coś
  1. <?php
  2. copy($save_image, 'ścieżka/'.$save_image);
  3. ?>


a zmienna $source to $_post[file][name]questionmark.gif

Ten post edytował Zimon 16.11.2006, 22:39:13
Go to the top of the page
+Quote Post
grattz
post 21.01.2007, 20:40:50
Post #6





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

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


Czy ktoś kto ma za dużo czasu mógłby dostosować ten skrypt do moich potrzeb ?

Dane wyjściowe:
Katalog w którym mam zdjęcia : ../portal2006/uploads/
Zmienna pobierająca z MySQL nazwę pliku zapisanego w tym katalogu : .$row['id'].$row['nazwabanera'].
Miniaturka w rozmiarze 150x150

Dzięki . Analizuje ten kod i nie wiem co mam zmienić.

Ktoś moze mnie naprowadzić jak to zrobić bo nie moge sobie z tym poradzić.

Ten post edytował grattz 19.01.2007, 21:05:18


--------------------
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: 19.07.2025 - 19:40