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
Fallout
post
Post #2





Grupa: Zarejestrowani
Postów: 154
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Olsztyn

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


dzięki Bakus! Nawet nie przypuszczałem, że to takie balane (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

No i nigdy nie może być za pięknie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat
./galerie/spacery/.
./galerie/spacery/mini/.
./galerie/spacery/..
./galerie/spacery/mini/..
./galerie/spacery/mini
./galerie/spacery/mini/mini
./galerie/spacery/1.JPG
./galerie/spacery/mini/1.JPG
./galerie/spacery/10.jpg
./galerie/spacery/mini/10.jpg
./galerie/spacery/12.JPG
./galerie/spacery/mini/12.JPG
./galerie/spacery/13.JPG
./galerie/spacery/mini/13.JPG


oczywiscie chodzi o pierwsze 6 wpisów.. jak się ich pozbyć?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?

moje kody:


Ten wyswietla galerie, a po kliknieciu w nia, wyswietla minaturki:
  1. <?php
  2. ini_set('display_errors',1);
  3. include 'db_engine.php';
  4. include 'resize.inc.php';
  5.  
  6. define(MAX_WYMIAR_X, 100);
  7. define(MAX_WYMIAR_Y, 75);
  8.  
  9. $db = new dbengine();
  10. $db->polacz();
  11.  
  12. if (isset($_GET['id'])) // pokazuje wybrana
  13. {
  14. $gid = $_GET['id'];
  15. // pobranie katalogu fotek
  16. $db->DoSql("SELECT katalog FROM galerie WHERE id_galerii = $gid");
  17. $kat = mysql_result($db->wynik,0,0);
  18. $dir = './galerie/'.$kat.'/';
  19. $dir_mini = './galerie/'.$kat.'/mini/';
  20. if ($dh = opendir($dir))
  21. {
  22. while (($file = readdir($dh)) !== false)
  23. {
  24. echo $dir. $file. '<br>';
  25. echo $dir_mini. $file. '<br>';
  26. /*
  27. if(((substr($file, -3,3) == 'jpg') or (substr($file, -3,3) == 'JPG'))
  28.  && !file_exists($dir_mini . $file))
  29. {
  30. resizeImage($dir . $file, MAX_WYMIAR_X, MAX_WYMIAR_Y, $dir_mini . $file);
  31. }
  32. elseif(file_exists($dir_mini . $file))
  33. {
  34. echo '<img src="'.$dir_mini . $file.'" border="1">';
  35. }*/
  36. }
  37. closedir($dh);
  38. } 
  39.  
  40. $db->rozlacz();
  41. }
  42. else // pokazuje wszystkie
  43. {
  44.  
  45. $db->DoSQL("SELECT * FROM galerie");
  46. $db->NRows;
  47. $w = $db->wynik;
  48. $n = $db->rows;
  49.  
  50. while ($r=mysql_fetch_array($w))
  51. {
  52. $id  = $r['id_galerii'];
  53. $opis = $r['nazwa_galerii'];
  54.  
  55. echo "<a href="index.php?s=galerie&amp;id=$id">".$opis.'</a><br>';
  56. }
  57.  
  58. $db->rozlacz();
  59.  
  60. } // koniec wszystkich
  61. ?>


Ten kod to natomiast ciut zmodyfikowany skrypt z tematu (wiec nie wklejam calego):

  1. <?php
  2. function imgType($name)
  3. {
  4.  if((substr($name, -4, 4) == '.JPG')OR(substr($name, -4, 4) == '.jpg'))
  5.  {
  6. return "IMAGETYPE_JPEG";
  7.  }
  8.  elseif(substr($name, -4, 4) == '.gif')
  9.  {
  10. return "IMAGETYPE_GIF";
  11.  }
  12.  elseif(substr($name, -4, 4) == '.png')
  13.  {
  14. return "IMAGETYPE_PNG";
  15.  }
  16. }
  17. ?>


jak widac zmienilem tylko warunek..


Wiec powtorze pytanie? jak pozbyc sie tych zbędnych wpisów?

Dziękuje z góry i pozdrawiam
Marcin
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: 8.10.2025 - 07:37