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
 
Start new topic
Odpowiedzi
Homiczek
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 23.04.2003

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


Sorka że odgrzewam temat, ale mam problem związany z generacją miniaturki.
Skrypt taki już jakiś czas temu sobie zrobiłem, ale odkryłem jedną ciekawą rzecz.

Wcześniej też się zdarzało, że na stronie znajdowałem miniaturki wypełnione całe na czarno.
Ale teraz podczas prac nad nową wersją strony, do uploadu postanowiłem wrzucić zdjęcia z komórki (nokia 3220), noi pięknie mi wrzuciło wszystkie miniaturki czarne, a przy okazji troche błędów.

Odpaliłem nawet powyższy skrypt noi to samo - a nawet gorzej, bo on już nic nie wygenerował (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

A sypie takimi błędami :
Kod
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: 'zdjecie.jpg' is not a valid JPEG file in c:\usr\krasnal\www\newstr\zdj_test.php on line 30

Warning: imagesx(): supplied argument is not a valid Image resource in c:\usr\krasnal\www\newstr\zdj_test.php on line 39

Warning: imagesy(): supplied argument is not a valid Image resource in c:\usr\krasnal\www\newstr\zdj_test.php on line 40


Czyli jakiś niezgodny format jpga - chociaż windoza go normalnie wyświetla i wsio jest ok. A to niby zostało coś sprawdzone podczas uploadu - czy plik jest typu pjeg lub jpeg(to w moim kodzie)

Jak ktoś ma jakieś pomysły czemu jpgi z koma nie są ok dla tej grupy funkcji, lub jak temu zaradzić to z góry dzienki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 08:03