Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Miniaturka JPEG/GIF/PNG, [funkcja] php 4 i 5, gd2
tiraeth
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


  1. <?php
  2. function resizeImage($source, $max_x, $max_y, $save_image, $jpeg_quality = 100)
  3. {
  4.  /*
  5. * source - obrazek jpeg
  6. * max_x - maksymalna szerokosc pomniejszonego obrazka
  7. * max_y - maksymalna dlugosc pomniejszonego obrazka
  8. * save_image - nazwa pliku do ktorego zostanie zapisany nowy obrazek
  9. * jpeg_quality - jakosc powstalego obrazu jpeg - jezeli bedzie inny to argument jest nie wazny (domyslnie 100)
  10. */
  11.  
  12. if(exif_imagetype($source) == IMAGETYPE_JPEG)
  13. {
  14.  $img_src = imagecreatefromjpeg($source);
  15. }
  16. elseif(exif_imagetype($source) == IMAGETYPE_GIF)
  17. {
  18.  $img_src = imagecreatefromgif($source);
  19. }
  20. elseif(exif_imagetype($source) == IMAGETYPE_PNG)
  21. {
  22.  $img_src = imagecreatefrompng($source);
  23. }
  24. else
  25. {
  26.  die('Wrong filetype! Accepted images: JPG/JPEG, GIF, PNG');
  27. }
  28.  
  29.  $image_x = imagesx($img_src);
  30.  $image_y = imagesy($img_src);
  31.  if($image_x > $image_y) // Landscape
  32.  {
  33. $ratio_x = ($image_x > $max_x) ? $max_x/$image_x : 1;
  34. $ratio_y = $ratio_x;
  35. $move = 'y';
  36.  }
  37.  else // Portrait
  38.  {
  39. $ratio_y = ($image_y > $max_y) ? $max_y/$image_y : 1;
  40. $ratio_x = $ratio_y;
  41. $move = 'x';
  42.  }
  43. $new_x = $image_x*$ratio_x;
  44. $new_y = $image_y*$ratio_y;
  45.  
  46. $move_x = ($move == &#092;"x\") ? ($max_x-$new_x)/2 : 0;
  47. $move_y = ($move == &#092;"y\") ? ($max_y-$new_y)/2 : 0;
  48.  
  49. $new_img = imagecreatetruecolor($max_x, $max_y);
  50. $background = imagecolorallocate($new_img, 255, 255, 255);
  51. imagefill($new_img, 0, 0, $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)
  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\">';
  68. }
  69. ?>


użycie:
  1. <?
  2. resizeImage('obrazek_duzy.jpg', MAX_WYMIAR_X, MAX_WYMIAR_Y, 'obrazek_maly_nowy.jpg', JAKOSC_JPEG); // (5 parametr opcjonalnie dla jpg)
  3. ?>


Funkcja jest w stanie utworzyć miniaturkę z każdego obrazka jpg/jpeg, gif oraz png...
Go to the top of the page
+Quote Post

Posty w temacie
- tiraeth   Miniaturka JPEG/GIF/PNG   11.01.2005, 20:05:53
- - son   Sooper skrypt właśnie tego szukałem Dzięki Tirae...   23.01.2005, 20:09:00
- - Toom   Jak to się ma do obsługi GIFów w GD2, bo słyszałem...   14.02.2005, 11:20:51
- - tiraeth   GD2 obsługuję GIFy.... testowałem pod kątem gifów ...   14.02.2005, 13:02:55
- - Prometeus   Celeme wyjaśnienia. GD nie posiadało obsługi GIF...   14.02.2005, 13:05:40
- - Toom   Dowiedziałem się nawet że w 1.6 Zakończono obsługę...   14.02.2005, 13:19:00
- - Prometeus   php jest strasznie w plecy jeśli chodzi o GD :/ m...   14.02.2005, 18:54:41
- - Toom   Dzięki za info Możesz rozwinąć kwestię patcha (s...   15.02.2005, 14:33:42
- - pys1986   A mi to niedziala nic sie niewyswietla i nietworzy...   2.03.2005, 12:38:43
- - tiraeth   A może napiszesz co dokładnie nie działa?   2.03.2005, 15:24:10
- - pys1986   po prostu nic sie niewyswitla ani nie tworzy mi za...   2.03.2005, 20:21:10
- - miedzna   mi wywala : Fatal error: Call to undefined functi...   4.03.2005, 12:39:22
- - kicaj   Cytat(miedzna @ 2005-03-04 13:39:22)Fatal err...   4.03.2005, 16:08:27
- - tiraeth   NOWY KOD KTÓRY NIE WYMAGA EXIF: [PHP] pobierz, pl...   24.03.2005, 12:47:33
- - darkspirit   no tak ale teraz w sumie można łatwo złapać błąd j...   24.03.2005, 13:18:44
- - webtg   Skrypcik fajny, ale przy wielkich rozdzielczościac...   8.04.2005, 18:11:33
- - maker   max_execution_time lub memory_limit potrzebna pam...   8.04.2005, 19:57:54
- - webtg   To mam gdzies zadeklarować w skrypcie czy zmienić ...   8.04.2005, 20:06:45
- - Bakus   Wszystko jest napisane tu: max_execution_time - h...   11.04.2005, 00:16:20
- - webtg   Dzięki dzięki, poprostu nie mam wglądu w php.ini,...   11.04.2005, 00:25:12
- - xberus   [PHP] pobierz, plaintext <?php  imagejpeg...   2.08.2005, 07:25:34
- - tiraeth   Faktycznie małe przeoczenie...   2.08.2005, 08:41:54
- - PanGuzol   Oco chodzi z --enable--exif bo niewiem kaj to da...   2.08.2005, 10:21:14
- - tiraeth   Należy skompilować php z obsługą funkcji exif_   2.08.2005, 10:54:26
- - PanGuzol   Można jaśniej bo dalej niekapuje?   2.08.2005, 10:56:43
- - tiraeth   Może poczytaj php.net o rekompilacji/kompilacji S...   2.08.2005, 11:39:05
- - bumfank   a powiedzcie mi jak zrobic inteligentny resize, cz...   8.08.2005, 01:27:46
- - Bojakki   Cytat(bumfank @ 2005-08-08 00:27:46)a powiedz...   16.08.2005, 21:38:30
- - NuLL   Skorzystajcie z wyszukiwarki - sam wkleiłem taką f...   17.08.2005, 00:59:31
- - Herf-Life   dobry skrypt ... ale w $jpeg_quality najlepi...   20.08.2005, 12:21:27
- - Droopy   tiraeth - świetna funkcja, wielkie dzięki, jednak ...   13.09.2005, 18:11:03
- - Homiczek   Sorka że odgrzewam temat, ale mam problem związany...   21.09.2005, 20:17:22
- - mike_mech   Prawdopodobie format zapisu tych zdjęć, pomimo że ...   21.09.2005, 21:13:00
- - Fallout   Witam, po mękach z włączeniem GD2 udało mi się u...   30.09.2005, 12:09:19
- - Bakus   [PHP] pobierz, plaintext <?php define(MAX_W...   30.09.2005, 15:18:30
- - Fallout   dzięki Bakus! Nawet nie przypuszczałem, że to ...   30.09.2005, 17:33:54
- - Bakus   [PHP] pobierz, plaintext <?phpif((...   30.09.2005, 22:00:48
- - Fallout   Dzięki ponownie Bakus ! Skrypt uruchomiony, ...   2.10.2005, 13:16:31
- - Markym   Witam podepnę się pod topic. Interesuje mnie autog...   1.04.2006, 02:43:33
- - intol   Jak wynika z moich testów w funkcji jest błąd, dot...   12.04.2006, 20:36:34
- - JOHNY   Witam wszystkich sorka że tak wtrące ale czy nie l...   20.04.2006, 19:28:09
- - tiraeth   A od czego jest parametr $save_image ? Przeci...   20.04.2006, 19:34:56
- - MalyKazio   Witam, Mam problem z tym skryptem. Jest to skrypt...   1.06.2006, 11:43:56
- - amator01   przy tym skrypcie do miniatur ( 2 wersji bez exif ...   26.08.2006, 19:30:47
- - tiraeth   Nie masz biblioteki GD2+   26.08.2006, 20:16:17
- - tiraeth   resize.phps na tiraeth.info Przykład użycia: [PHP...   29.08.2006, 16:16:55
|- - pb17   Cytat(tiraeth @ 29.08.2006, 16:16:55 ...   11.11.2006, 17:57:28
- - cichy19-   Witam, Znalazł ktoś sposób na miniaturki zdjęć z ...   3.09.2006, 18:26:30
- - Zimon   a jak przerobić ten skrypt aby jeśli mamy zdjęcie ...   26.11.2006, 09:49:38
- - skowron-line   getimagesize sprawdzasz jakie ma rozmiary i jak ...   26.11.2006, 11:00:09
- - jaszu   moze ktos wrzucic ten kod na phpfi.com, bo forum c...   8.06.2007, 09:52:47
- - smarcz   [PHP] pobierz, plaintext <?/*Funkcja która zapi...   25.07.2007, 12:05:55
- - sanchoo   a jaj mam problem :/ caly kod przechodzi nie wywal...   12.09.2007, 14:49:44
- - b_chmura   Trochę zmieniłem w/w funkcję. Teraz jeśli podana s...   9.12.2007, 19:53:07
- - in5ane   Przepraszam, ale mam pytanie. I który skrypt wykor...   17.12.2007, 07:56:23
- - piotr94   Witam!. Nie ważne z którego skryptu korzystam,...   11.03.2009, 17:41:33
- - siemieng   Cytat(piotr94 @ 11.03.2009, 18:41:33 ...   2.04.2009, 23:35:43
- - dr revuu   Z góry przepraszam za odkop, ale skrypt (post 1) n...   9.07.2011, 20:10:19


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 Aktualny czas: 19.08.2025 - 09:58