Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: gd
Forum PHP.pl > Forum > PHP
Dex1987
Witam, napisałem sobie klase do miniaturek i wszystko dziala jak nalezy ale tylko wtedy gdy sie je wyswietla, jak chce zapisac obrazek do pliku to juz nie dziala :/

Oro kod klasy
  1. <?php
  2.  
  3. class Image {
  4.  
  5. var $ImageName;
  6. var $ImageMime;
  7.  
  8. var $NewImage;
  9.  
  10. var $ImageWidth;
  11. var $ImageHeight;
  12.  
  13. var $NewImageWidth;
  14. var $NewImageHeight;
  15.  
  16. function Image ($ImageName, $NewImageWidth) {
  17.  
  18.  $ImageData = @GetImageSize ($ImageName);
  19.  
  20.  $ImageWidth = $ImageData[0];
  21.  $ImageHeight = $ImageData[1];
  22.  $ImageMime  = $ImageData[2];
  23.  
  24.  if ($ImageHeight > $NewImageWidth) {
  25.  
  26.  $NewImageHeight = @floor ($NewImageWidth / ($ImageWidth / $ImageHeight));
  27.  }
  28.  
  29.  $this -> ImageName = $ImageName;
  30.  $this -> ImageMime = $ImageMime;
  31.  
  32.  $this -> ImageWidth  = $ImageWidth;
  33.  $this -> ImageHeight = $ImageHeight;
  34.  $this -> NewImageWidth = $NewImageWidth;
  35.  $this -> NewImageHeight = $NewImageHeight;
  36. }
  37.  
  38. function LoadImage () {
  39.  
  40.  switch ($this -> ImageMime) {
  41.  
  42.  case 1: $NewImage = @ImageCreateFromGif ($this -> ImageName);
  43.  break;
  44.  
  45.  case 2: $NewImage = @ImageCreateFromJpeg ($this -> ImageName);
  46.  break;
  47.  
  48.  case 3: $NewImage = @ImageCreateFromPng ($this -> ImageName);
  49.  break;
  50.  
  51.  default: $NewImage = false;
  52.  break;
  53.  }
  54.  
  55.  return $NewImage;
  56. }
  57.  
  58. function ShowThumb () {
  59.  
  60.  $Thumb = ImageCreateTrueColor ($this -> NewImageWidth, $this -> NewImageHeight);
  61.  
  62.  ImageCopyResampled ($Thumb, $this -> LoadImage ($this -> ImageName), 0, 0, 0, 0, $this -> NewImageWidth, $this -> NewImageHeight, $this -> ImageWidth, $this -> ImageHeight);
  63.  
  64.  return $Thumb;
  65. }
  66.  
  67. function ShowImage () {
  68.  
  69.  switch ($this -> ImageMime) {
  70.  
  71.  case 1: $ImageExpansion = "gif";
  72.  break;
  73.  
  74.  case 2: $ImageExpansion = "jpeg";
  75.  break;
  76.  
  77.  case 3: $ImageExpansion = "png";
  78.  break;
  79.  
  80.  default: $ImageExpansion = false;
  81.  break;
  82.  }
  83.  
  84.  header ("Content-type: image/jpeg");
  85.  
  86.  $file_open = fopen (time (). "." .$ImageExpansion, 'w');
  87. fputs ($file_open, ImageJPEG ($this -> ShowThumb ($this -> ImageName), "", 80));
  88. fclose ($file_open);
  89.  
  90.  
  91. }
  92.  
  93. }
  94.  
  95. $Image = new Image ("0.jpg", "640");
  96.  
  97. $Image -> LoadImage ();
  98. $Image -> ShowThumb ();
  99. $Image -> ShowImage ();
  100.  
  101. ?>
msulik
Funkcja imagejpeg jako drugi parametr bierze nazwę pliku, do którego ma zostać zapisany obrazek. Więc zamiast używać fputs i tego wszystkiego dookoła, wystarczy napisać:
  1. <?php
  2. ImageJPEG ($this -> ShowThumb ($this -> ImageName), "plik_wyjsciowy.jpg", 80);
  3. ?>
Dex1987
Ok wszystko dziala, dzieki wielkie.

Pozdrawiam.
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.