Witam

Przeniosłem stronę na darmowy serwer i używam funkcji robiącej miniatury z wysłanych obrazków. Nie miałem z nią dotąd żadnych problemów.
Po wysłaniu plików na serwer okazało się że na serwerze moduł GD obsługuje tylko format GIF.

Czy jest jakiś sposób na przywrócenie obsługi JPG ?
Dostępu do narzędzi serwera nie mam. Tylko ftp :-)

Kod
gd

   GD Support         enabled
   GD Version         2.0 or higher
   GIF Read Support   enabled
   GIF Create Support enabled
   WBMP Support       enabled


I drugi problem to że nawet z plików GIF miniatury nie zapisują się. Natomiast operacje łączenia obrazków działają.
Funkcja robiąca miniatury:
  1. <?php
  2. function resizeImage($src,$dest,$maxWidth,$maxHeight,$quality=80) {
  3.  if (file_exists($src) && isset($dest)) {
  4.  // path info
  5.  $destInfo = pathInfo($dest);
  6.  // image src size
  7.  $srcSize = getImageSize($src);
  8.  // image dest size $destSize[0] = width, $destSize[1] = height
  9.  $srcRatio = $srcSize[0]/$srcSize[1]; // width/height ratio
  10.  $destRatio = $maxWidth/$maxHeight;
  11.  if ($destRatio > $srcRatio) {
  12.  $destSize[1] = $maxHeight;
  13.  $destSize[0] = $maxHeight*$srcRatio;
  14.  }
  15.  else {
  16.  $destSize[0] = $maxWidth;
  17.  $destSize[1] = $maxWidth/$srcRatio;
  18.  }
  19.  
  20.  // path rectification
  21.  if ($destInfo['extension'] == "jpg") {
  22.  $dest = substr_replace($dest, 'gif', -3);
  23.  }
  24.  
  25.  if ($destInfo['extension'] == "png") {
  26.  $dest = substr_replace($dest, 'gif', -3);
  27.  }
  28.  
  29.  // true color image, with anti-aliasing
  30.  $destImage = imagecreatetruecolor($destSize[0],$destSize[1]);
  31.  
  32.  // src image
  33.  switch ($srcSize[2]) {
  34.  case 1: //GIF
  35.  $srcImage = imageCreateFromGif($src);
  36.  break;
  37.  
  38.  case 2: //JPEG
  39.  $srcImage = imageCreateFromJpeg($src);
  40.  break;
  41.  
  42.  case 3: //PNG
  43.  $srcImage = imageCreateFromPng($src);
  44.  break;
  45.  
  46.  default:
  47.  return false;
  48.  break;
  49.  }
  50.  
  51.  imageCopyResampled($destImage, $srcImage, 0, 0, 0, 0,$destSize[0],$destSize[1],$srcSize[0],$srcSize[1]);
  52.  
  53.  switch ($srcSize[2]) {
  54.  case 1:
  55.  case 2:
  56. case 3:
  57.  imagegif($destImage,$dest);
  58.  break;
  59.  
  60.  // case 3:
  61.  // imagePng($destImage,$dest);
  62.  // break;
  63.  }
  64.  return true;
  65.  }
  66.  else {
  67.  return false;
  68.  }
  69. }
  70. ?>