Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php5][GD] zmiana rozmiaru obrazków - wyświetla tylko jeden
Forum PHP.pl > Forum > Przedszkole
bart_pl
Witam,

napisałem taką oto funkcję wykorzystującą GD do zmiany rozmiaru obrazka oraz do wyświetlenia ramki:
  1. <?php
  2. function resize($zdjecie)
  3. {
  4. $img = imagecreatefromjpeg($zdjecie);
  5. $size = getimagesize($zdjecie);
  6. $width = 140;
  7. $height = $size[1] * $width/$size[0];
  8. if ($height>105) {
  9. $height = 105;
  10. $width = $size[0] * $height/$size[1];
  11. }
  12. $im = imagecreatetruecolor($width,$height);
  13. imagecopyresampled($im, $img, 0, 0, 0, 0, $width, $height, imagesx($img), imagesy($img));
  14. $destinationSize  =  array(imagesx($im)+6, imagesy($im)+6);
  15. $destination = imagecreatetruecolor($destinationSize[0],$destinationSize[1]);
  16. $white = imagecolorallocate($destination, 255, 255, 255);
  17. $border = imagecolorallocate($destination, 59, 70, 77);
  18. $rog = imagecolorallocate($destination, 58, 68, 76);
  19. imagefill($destination, 0, 0, $white);
  20.  
  21. imagecopyresampled($destination, $im, 3, 3, 0, 0, imagesx($im),imagesy($im),imagesx($im),imagesy($im));
  22.  
  23. //top
  24. imageline($destination, 1,0, $destinationSize[0]-2,0, $border);
  25. imagesetpixel($destination, 0,0, $rog);
  26. //lewa
  27. imageline($destination, 0,1,0,$destinationSize[1]-2, $border);
  28. imagesetpixel($destination, 0,$destinationSize[1]-1, $rog);
  29. //prawa
  30. imageline($destination, $destinationSize[0]-1,1,$destinationSize[0]-1,$destinationSize[1]-2, $border);
  31. imagesetpixel($destination, $destinationSize[0]-1,$destinationSize[1]-1, $rog);
  32. //bottom
  33. imageline($destination, 1,$destinationSize[1]-1, $destinationSize[0]-2,$destinationSize[1]-1, $border);
  34. imagesetpixel($destination, $destinationSize[0]-1,0, $rog);
  35.  
  36. header('Content-Type: image/jpeg');
  37.  
  38. imagejpeg($destination);
  39. }
  40. resize("tlo.jpg");
  41. resize("morze.jpg");
  42. resize("morze2.jpg");
  43. ?>


Problem polega na tym, że nie mogę wyświetlić 3 obrazków na raz, bo kod wykona się takjakby raz dla jednego obrazka i na tym poprzestaje... Czy ktoś ma jakiś pomysł jak to naprawić, ewentualnie jak usprawnić skrypt? Do ImageMagick nie mam dostępu...
Pawel_W
a myślałeś że co? zrobi ci 3 obrazki 1 pod drugim?
dodaj do funkcji imagejpeg drugi parametr,wtedy ci zapisze te obrazki
korro
Witam.
Albo zakoduj to w base64 i wyświetlaj obrazki inline.
Przykład:
  1. <img src="data:image/jpeg;base64,[tu zakodowany obrazek w base64]">
erix
Fajnie, że to w starszych przeglądarkach zadziała. tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.