Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][GD]Miniaturki w locie, Skalowanie obrazów
lDoran
post 27.08.2010, 19:47:52
Post #1





Grupa: Zarejestrowani
Postów: 172
Pomógł: 13
Dołączył: 15.11.2009

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


Jestem w trakcie pisania modułu witryny skalującego obrazy, niestety nie mogę uporać się z błędem nie mam pojęcia o co kaman. sciana.gif
Efekt widoczny w przeglądarce to trzy jedynki
  1. <?php
  2. class cFileManagerGallery
  3. {
  4. //Obiekty
  5. private $_model;
  6. private $_view;
  7.  
  8. //Dane
  9. private $_arFiles = array(); //Tablica zdjęć
  10. private $_imgW; //Szerokość obrazu
  11. private $_imgH; //Wysokość obrazu
  12. private $_newImgW; //Nowa szerokość obrazu
  13. private $_newImgH; //Nowa wysokość obrazu
  14. private $_ratio; //Stosunek szerokości do wysokości
  15. private $_img; //Uchwyt aktualnego obrazu
  16.  
  17.  
  18. //Uruchamia model, ustawia dane,
  19. //skaluje pliki JPG, uruchamia view
  20. public function __construct()
  21. {
  22. $this -> runModel();
  23. $this -> setData();
  24. $this -> scaleImg();
  25. $this -> runView();
  26. }
  27.  
  28. //Uruchamia model
  29. private function runModel()
  30. {
  31. $this -> _model = new mFileManager('web/gallery/');
  32. }
  33.  
  34. //Wczytuje wszystkie zdjęcia do tablicy _arFiles
  35. private function setData()
  36. {
  37. $this -> _arFiles = ($this -> _model -> getData());
  38. }
  39.  
  40. //Metoda odpowiedziala za przeskalowanie wszystkich
  41. //obrazów z tablicy: _arFiles i zapisanie ich miniatur
  42. //do tablicy: _arNewFles
  43. private function scaleImg()
  44. {
  45. for($i = 0; $i < count($this -> _arFiles); $i++)
  46. {
  47. if(!($this -> _img = imagecreatefromjpeg('web/gallery/' . $this -> _arFiles[$i])))
  48. {
  49. echo 'Nie można otworzyć pliku: ' . $this -> _arFiles[$i];
  50. return false;
  51. }
  52.  
  53. $this -> _imgW = imagesx($this -> _img);
  54. $this -> _imgH = imagesy($this -> _img);
  55. $this -> _ratio = $this -> _imgW / $this -> _imgH;
  56.  
  57. if($this -> _ratio > 1)
  58. {
  59. $this -> _newImgW = 150;
  60. $this -> _newImgH = 150 / $this -> _ratio;
  61. }
  62. else
  63. {
  64. $this -> _newImgW = 150 * $this -> _ratio;
  65. $this -> _newImgH = 150;
  66. }
  67.  
  68. $tempImg = imagecreatetruecolor($this -> _newImgW, $this -> _newImgH);
  69. imagecopyresampled($tempImg, $this -> _img, 0, 0, 0, 0, $this -> _newImgW,
  70. $this -> _newImgH, $this -> _imgW, $this -> _imgH);
  71.  
  72. $this -> _arNewFiles[$i] = imagejpeg($tempImg, $i . '.jpg');
  73. }
  74. }
  75.  
  76. //Uruchamia widok
  77. private function runView()
  78. {
  79. $this -> _view = new vFileManagerGallery($this -> _arFiles ,$this -> _arNewFiles);
  80. }
  81. }
  82. ?>



Ten post edytował lDoran 27.08.2010, 20:22:41
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 11:46