Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP + GD
Forum PHP.pl > Forum > PHP
Jaen-ni-rin
Tworzę prostą galerię w php i chciałbym się dowiedzieć jak za pomocą GD można tworzyć miniatury dużych obrazków.
Duże obrazki będą umieszczone w katalogu big/ i po dokonaniu zmiany rozmiarow na 200x150 powinny być zapisywane w thumbs/.
Jakieś propozycje co do kodu ? W GD jestem zielony, więc w miarę możliwości proszę o dokładną odpowiedź. smile.gif
Liko
  1. <?php
  2. // $src - sciezka obrazka zmienianego
  3. // $dest - sciezka utworzonego obrazka
  4. // reszta wiadomo
  5.  
  6. function resize_photo($src, $dest, $maxWidth, $maxHeight, $quality = 70) {
  7.  if (file_exists($src) && isset($dest)) {
  8.  // path info
  9.  $destInfo = pathInfo($dest);
  10.  
  11.  // image src size
  12.  $srcSize = getImageSize($src);
  13.  
  14.  // image dest size $destSize[0] = width, $destSize[1] = height
  15.  $srcRatio = $srcSize[0]/$srcSize[1]; // width/height ratio
  16.  $destRatio = $maxWidth/$maxHeight;
  17.  if ($destRatio > $srcRatio) {
  18.  $destSize[1] = $maxHeight;
  19.  $destSize[0] = $maxHeight*$srcRatio;
  20.  }
  21.  else {
  22.  $destSize[0] = $maxWidth;
  23.  $destSize[1] = $maxWidth/$srcRatio;
  24.  }
  25.  
  26.  // path rectification
  27.  if ($destInfo['extension'] == &#092;"gif\") {
  28.  $dest = substr_replace($dest, 'jpg', -3);
  29.  }
  30.  
  31.  // true color image, with anti-aliasing
  32.  $destImage = imageCreateTrueColor($destSize[0],$destSize[1]);
  33.  imageAntiAlias($destImage,true);
  34.  
  35.  // src image
  36.  switch ($srcSize[2]) {
  37.  case 1: //GIF
  38.  $srcImage = imageCreateFromGif($src);
  39.  break;
  40.  
  41.  case 2: //JPEG
  42.  $srcImage = imageCreateFromJpeg($src);
  43.  break;
  44.  
  45.  case 3: //PNG
  46.  $srcImage = imageCreateFromPng($src);
  47.  break;
  48.  
  49.  default:
  50.  return false;
  51.  break;
  52.  }
  53.  
  54.  // resampling
  55.  imageCopyResampled($destImage, $srcImage, 0, 0, 0, 0,$destSize[0],$destSize[1],$srcSize[0],$srcSize[1]);
  56.  
  57.  // generating image
  58.  switch ($srcSize[2]) {
  59.  case 1:
  60.  case 2:
  61.  imageJpeg($destImage,$dest,$quality);
  62.  break;
  63.  
  64.  case 3:
  65.  imagePng($destImage,$dest);
  66.  break;
  67.  }
  68.  return true;
  69.  }
  70.  else {
  71.  return false;
  72.  }
  73. }
  74. ?>


Wziąłem to z tego postu: http://forum.php.pl/index.php?showtopic=22...ndpost&p=135497
Wystarczylo wpisać w szukarke słówka: miniatury.
squid
tego bylo juz sporo poszukaj na forum bo naprawde znajdziej o tym wszystko
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.