Создание превью для изображений

  1. define('FILESDIR', dirname(__FILE__) . DIRECTORY_SEPARATOR . 'img' . DIRECTORY_SEPARATOR);
  2. $path = FILESDIR . 'someimage.png';
  3. $fname = 'someimage';
  4. if (extension_loaded('gd')) {
  5.     $imageSize = getimagesize($path);
  6.     $types = array(1 => 'gif', 2=> 'jpg', 3 => 'png');
  7.     $imageType = array_key_exists($imageSize[2], $types) ? $types[$imageSize[2]] : FALSE;
  8.     if ($imageType !== FALSE) {
  9.         $width = $imageSize[0];
  10.         $height = $imageSize[1];
  11.         if ($width > 220 || $height > 176) {
  12.             switch ($imageType) {
  13.                 case 'gif': $image = imagecreatefromgif($path);  break;
  14.                 case 'jpg': $image = imagecreatefromjpeg($path); break;
  15.                 case 'png': $image = imagecreatefrompng($path);  break;
  16.                 default:
  17.             }
  18.             $max = $width > $height ? 'w' : 'h';
  19.             $new_width = 176;
  20.             $new_height = 220;
  21.  
  22.             if ($max == 'w' && $width > $new_width)
  23.                 $new_height = intval(($new_width * $height) / $width);
  24.  
  25.             if ($max == 'h' && $height > $new_height)
  26.                 $new_width = intval(($new_height * $width) / $height);
  27.  
  28.             $preview = imagecreate($new_width, $new_height);
  29.             imagecopyresized($preview, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
  30.             imagepng($preview, FILESDIR . $fname . '_preview.png');
  31.         }
  32.     }
  33. }

Реклама

Мы в соцсетях

tw tg yt gt